dynamicweb/docker-compose.yaml
2026-10-05 08:19:43 +01:00

95 lines
1.1 KiB
YAML

services:
db:
image: postgres:16
restart: unless-stopped
env_file:
- .env
environment:
POSTGRES_DB: ${POSTGRES_DB}
POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
volumes:
- postgres_data:/var/lib/postgresql/data
networks:
- backend
healthcheck:
test:
[
"CMD-SHELL",
"pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"
]
interval: 10s
timeout: 5s
retries: 5
web:
build: .
restart: unless-stopped
env_file:
- .env
environment:
POSTGRES_HOST: db
POSTGRES_PORT: 5432
command: >
gunicorn dynamicweb.wsgi:application
--bind 0.0.0.0:8000
--workers 3
--access-logfile -
--error-logfile -
volumes:
- static_data:/app/staticfiles
- media_data:/app/media
expose:
- "8000"
depends_on:
db:
condition: service_healthy
networks:
- backend
nginx:
image: nginx:alpine
restart: unless-stopped
ports:
- "80:80"
volumes:
- ./deploy/nginx/default.conf:/etc/nginx/conf.d/default.conf:ro
- static_data:/app/staticfiles:ro
- media_data:/app/media:ro
depends_on:
- web
networks:
- backend
volumes:
postgres_data:
static_data:
media_data:
networks:
backend: