109 lines
No EOL
3.2 KiB
YAML
109 lines
No EOL
3.2 KiB
YAML
services:
|
|
app:
|
|
image: "solidtime/solidtime:${SOLIDTIME_VERSION:-latest}"
|
|
container_name: solidtime
|
|
restart: always
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.docker.network=traefik"
|
|
- "traefik.http.routers.solidtime.entrypoints=http"
|
|
- "traefik.http.routers.solidtime.rule=Host(`${SOLIDTIME_DOMAIN:?error}`)"
|
|
- "traefik.http.middlewares.solidtime-https-redirect.redirectscheme.scheme=https"
|
|
- "traefik.http.routers.solidtime.middlewares=solidtime-https-redirect"
|
|
- "traefik.http.routers.solidtime-secure.entrypoints=https"
|
|
- "traefik.http.routers.solidtime-secure.rule=Host(`${SOLIDTIME_DOMAIN:?error}`)"
|
|
- "traefik.http.routers.solidtime-secure.tls=true"
|
|
- "traefik.http.routers.solidtime-secure.service=solidtime"
|
|
- "traefik.http.services.solidtime.loadbalancer.server.port=8000"
|
|
networks:
|
|
- traefik
|
|
- solidtime
|
|
volumes:
|
|
- "app-storage:/var/www/html/storage"
|
|
- "./data/logs:/var/www/html/storage/logs"
|
|
- "./data/app-storage:/var/www/html/storage/app"
|
|
environment:
|
|
CONTAINER_MODE: http
|
|
healthcheck:
|
|
test: [ "CMD-SHELL", "curl --fail http://localhost:8000/health-check/up || exit 1" ]
|
|
env_file:
|
|
- laravel.env
|
|
depends_on:
|
|
- database
|
|
|
|
scheduler:
|
|
image: "solidtime/solidtime:${SOLIDTIME_VERSION:-latest}"
|
|
restart: always
|
|
networks:
|
|
- solidtime
|
|
volumes:
|
|
- "app-storage:/var/www/html/storage"
|
|
- "./data/logs:/var/www/html/storage/logs"
|
|
- "./data/app-storage:/var/www/html/storage/app"
|
|
environment:
|
|
CONTAINER_MODE: scheduler
|
|
healthcheck:
|
|
test: [ "CMD-SHELL", "supervisorctl status scheduler:scheduler_00" ]
|
|
env_file:
|
|
- laravel.env
|
|
depends_on:
|
|
- database
|
|
|
|
queue:
|
|
restart: always
|
|
image: "solidtime/solidtime:${SOLIDTIME_VERSION:-latest}"
|
|
networks:
|
|
- solidtime
|
|
volumes:
|
|
- "app-storage:/var/www/html/storage"
|
|
- "./data/logs:/var/www/html/storage/logs"
|
|
- "./data/app-storage:/var/www/html/storage/app"
|
|
environment:
|
|
CONTAINER_MODE: worker
|
|
WORKER_COMMAND: "php /var/www/html/artisan queue:work"
|
|
healthcheck:
|
|
test: [ "CMD-SHELL", "supervisorctl status worker:worker_00" ]
|
|
env_file:
|
|
- laravel.env
|
|
depends_on:
|
|
- database
|
|
|
|
database:
|
|
restart: always
|
|
image: 'postgres:${SOLIDTIME_POSTGRES_VERSION:-16}'
|
|
environment:
|
|
PGPASSWORD: '${SOLIDTIME_POSGRES_PASSWORD:?error}'
|
|
POSTGRES_DB: '${SOLIDTIME_POSTGRES_DATABASE:?error}'
|
|
POSTGRES_USER: '${SOLIDTIME_POSTGRES_USERNAME:?error}'
|
|
POSTGRES_PASSWORD: '${SOLIDTIME_POSTGRES_PASSWORD:?error}'
|
|
volumes:
|
|
- 'database-storage:/var/lib/postgresql/data'
|
|
networks:
|
|
- solidtime
|
|
healthcheck:
|
|
test:
|
|
- CMD
|
|
- pg_isready
|
|
- '-q'
|
|
- '-d'
|
|
- '${SOLIDTIME_POSTGRES_DATABASE}'
|
|
- '-U'
|
|
- '${SOLIDTIME_POSTGRES_USERNAME}'
|
|
retries: 3
|
|
timeout: 5s
|
|
|
|
gotenberg:
|
|
image: gotenberg/gotenberg:8
|
|
networks:
|
|
- solidtime
|
|
healthcheck:
|
|
test: [ "CMD", "curl", "--silent", "--fail", "http://localhost:3000/health" ]
|
|
|
|
networks:
|
|
traefik:
|
|
external: true
|
|
internal:
|
|
|
|
volumes:
|
|
database-storage:
|
|
app-storage: |