Add Docker build/push and Dockge deploy workflow
- Add api/admin/upload Dockerfiles and .dockerignore - Add deploy/docker-compose.yml (ports 3001-3004) and deploy/README.md - Add scripts/docker-build-push.sh for Gitea registry push - Add Gitea/SSH scripts and Google Drive controller updates Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
90
deploy/docker-compose.yml
Normal file
90
deploy/docker-compose.yml
Normal file
@@ -0,0 +1,90 @@
|
||||
# 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: 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
|
||||
Reference in New Issue
Block a user