docker-compose-collection/solidtime/docker-compose.yml

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: