Files
event-uploader/deploy/docker-compose.yml

91 lines
2.5 KiB
YAML

# Production stack for Dockge. Uses images from Gitea registry only (no build).
# Ports in 3000 range to avoid conflicts with other containers on the host.
# Set TAG in .env (e.g. TAG=1.0.0 or TAG=latest).
services:
api:
image: 10.0.10.205:3000/bert.hausmans/event-uploader-api:${TAG:-latest}
ports:
- "3001:8000"
environment:
- APP_KEY=${APP_KEY}
- APP_ENV=production
- APP_DEBUG=${APP_DEBUG:-false}
- APP_URL=${APP_URL}
- DB_CONNECTION=mysql
- DB_HOST=mysql
- DB_PORT=3306
- DB_DATABASE=${DB_DATABASE:-event_uploader}
- DB_USERNAME=${DB_USERNAME:-root}
- DB_PASSWORD=${DB_PASSWORD}
- SESSION_DOMAIN=${SESSION_DOMAIN}
- SANCTUM_STATEFUL_DOMAINS=${SANCTUM_STATEFUL_DOMAINS}
- GOOGLE_CLIENT_ID=${GOOGLE_CLIENT_ID:-}
- GOOGLE_CLIENT_SECRET=${GOOGLE_CLIENT_SECRET:-}
- GOOGLE_REDIRECT_URI=${GOOGLE_REDIRECT_URI:-}
depends_on:
mysql:
condition: service_healthy
networks:
- event-uploader
queue:
image: 10.0.10.205:3000/bert.hausmans/event-uploader-api:${TAG:-latest}
command: ["php", "artisan", "queue:work"]
environment:
- APP_KEY=${APP_KEY}
- APP_ENV=production
- DB_CONNECTION=mysql
- DB_HOST=mysql
- DB_PORT=3306
- DB_DATABASE=${DB_DATABASE:-event_uploader}
- DB_USERNAME=${DB_USERNAME:-root}
- DB_PASSWORD=${DB_PASSWORD}
- GOOGLE_CLIENT_ID=${GOOGLE_CLIENT_ID:-}
- GOOGLE_CLIENT_SECRET=${GOOGLE_CLIENT_SECRET:-}
depends_on:
mysql:
condition: service_healthy
api:
condition: service_started
networks:
- event-uploader
admin:
image: 10.0.10.205:3000/bert.hausmans/event-uploader-admin:${TAG:-latest}
ports:
- "3002:80"
networks:
- event-uploader
upload:
image: 10.0.10.205:3000/bert.hausmans/event-uploader-upload:${TAG:-latest}
ports:
- "3003:80"
networks:
- event-uploader
mysql:
image: docker.io/library/mysql:8.0
ports:
- "3004:3306"
environment:
MYSQL_ROOT_PASSWORD: ${DB_PASSWORD}
MYSQL_DATABASE: ${DB_DATABASE:-event_uploader}
volumes:
- event_uploader_mysql_data:/var/lib/mysql
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-p${DB_PASSWORD}"]
interval: 5s
timeout: 5s
retries: 10
networks:
- event-uploader
volumes:
event_uploader_mysql_data:
networks:
event-uploader:
driver: bridge