Files
hxbooks/docker-compose.yml
Francisco Penedo Alvarez 7f4a956df3
Some checks failed
CI / quality-checks (push) Successful in 42s
Deploy / deploy (push) Failing after 58s
Add CI and deployment workflows for Gitea
2026-03-31 18:58:17 +02:00

71 lines
1.6 KiB
YAML

services:
app:
build: .
restart: unless-stopped
volumes:
# Mount media directory for book covers
- media:/app/media
# Mount instance directory for config and database persistence
- instance:/app/instance
# Mount shared directory for static files that Caddy can access
- static:/shared/static
# Mount caddy_file for Caddy configuration
- caddy_file:/app/caddy
expose:
- "5000"
environment:
- FLASK_ENV=production
- GOOGLE_BOOKS_API_KEY=${GOOGLE_BOOKS_API_KEY}
networks:
- hxbooks
# Health check to ensure app is ready
healthcheck:
test:
[
"CMD-SHELL",
"wget --no-verbose --tries=1 --spider http://127.0.0.1:5000/ || exit 1",
]
interval: 30s
timeout: 10s
retries: 3
start_period: 30s
caddy:
image: caddy:2-alpine
restart: unless-stopped
ports:
- "5123:443"
volumes:
# Caddyfile configuration
- caddy_file:/etc/caddy
# Media files served directly by Caddy
- media:/var/www/media:ro
# Static files served directly by Caddy (populated by app container)
- static:/var/www/static:ro
# Caddy data for TLS certificates
- caddy_data:/data
- caddy_config:/config
networks:
- hxbooks
depends_on:
app:
condition: service_healthy
networks:
hxbooks:
driver: bridge
volumes:
media:
driver: local
instance:
driver: local
static:
driver: local
caddy_data:
driver: local
caddy_config:
driver: local
caddy_file:
driver: local