84 lines
2.6 KiB
YAML
84 lines
2.6 KiB
YAML
services:
|
|
mysql:
|
|
image: mysql:9.4
|
|
volumes:
|
|
- ${MYSQL_DATA_DIR:-db_data}:/var/lib/mysql
|
|
restart: unless-stopped
|
|
environment:
|
|
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
|
|
- MYSQL_DATABASE=leantime
|
|
- MYSQL_USER=lean
|
|
- MYSQL_PASSWORD=${MYSQL_PASSWORD}
|
|
command: --character-set-server=UTF8MB4 --collation-server=UTF8MB4_unicode_ci
|
|
healthcheck:
|
|
test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
|
|
leantime:
|
|
image: leantime/leantime:3.5.12
|
|
restart: unless-stopped
|
|
# security_opt:
|
|
# - no-new-privileges:true
|
|
# cap_add:
|
|
# - CAP_NET_BIND_SERVICE
|
|
# - CAP_CHOWN
|
|
# - CAP_SETGID
|
|
# - CAP_SETUID
|
|
environment:
|
|
- LEAN_DB_HOST=mysql
|
|
- LEAN_DB_DATABASE=leantime
|
|
- LEAN_DB_USER=lean
|
|
- LEAN_DB_PASSWORD=${MYSQL_PASSWORD}
|
|
- LEAN_SESSION_PASSWORD=${LEAN_SESSION_PASSWORD}
|
|
- LEAN_DEBUG=0
|
|
- LEAN_LANGUAGE=fr-FR
|
|
- LEAN_DEFAULT_TIMEZONE=Europe/Paris
|
|
- LEAN_DISABLE_LOGIN_FORM=true
|
|
- LEAN_OIDC_ENABLE=true
|
|
- LEAN_OIDC_PROVIDER_URL=${LEAN_OIDC_PROVIDER_URL}
|
|
- LEAN_OIDC_CLIENT_ID=${LEAN_OIDC_CLIENT_ID}
|
|
- LEAN_OIDC_CLIENT_SECRET=${LEAN_OIDC_CLIENT_SECRET}
|
|
- LEAN_OIDC_CREATE_USER=false
|
|
- LEAN_OIDC_DEFAULT_ROLE=20
|
|
volumes:
|
|
- ${LEAN_PUBLIC_USERFILES_DIR:-public_userfiles}:/var/www/html/public/userfiles # Volume to store public files, logo etc
|
|
- ${LEAN_USERFILES_DIR:-userfiles}:/var/www/html/userfiles # Original volume name for compatibility
|
|
- ${LEAN_PLUGINS_DIR:-plugins}:/var/www/html/app/Plugins # Plugin storage
|
|
- ${LEAN_LOGS_DIR:-logs}:/var/www/html/storage/logs # Log storage
|
|
depends_on:
|
|
mysql:
|
|
condition: service_healthy
|
|
labels:
|
|
- traefik.enable=true
|
|
- traefik.http.routers.leantime.entryPoints=https
|
|
- traefik.http.routers.leantime.rule=Host(`${HOST}`)
|
|
- traefik.http.routers.leantime.tls.certresolver=le-ssl
|
|
- traefik.http.services.leantime.loadbalancer.server.port=8080
|
|
- traefik.docker.network=front
|
|
networks:
|
|
- default
|
|
- front
|
|
|
|
# Add a helper container for volume permissions
|
|
# Run via docker compose --profile mysql_helper up -d
|
|
mysql_helper:
|
|
image: mysql:9.4
|
|
command: chown -R mysql:mysql /var/lib/mysql
|
|
volumes:
|
|
- ${MYSQL_DATA_DIR:-db_data}:/var/lib/mysql
|
|
user: root
|
|
profiles: [ "helper" ]
|
|
|
|
volumes:
|
|
db_data:
|
|
userfiles:
|
|
public_userfiles:
|
|
plugins:
|
|
logs:
|
|
|
|
networks:
|
|
front:
|
|
external: true
|