--- services: web: build: . command: gunicorn website.wsgi:application depends_on: db: condition: service_healthy environment: ALLOWED_HOSTS: ${NGINX_HOSTNAME} DJANGO_SETTINGS_MODULE: ${DJANGO_SETTINGS_MODULE} # VIRTUAL_HOST: localhost # VIRTUAL_PORT: 8000 restart: unless-stopped volumes: [static_volume:/app/static, media_volume:/app/media] networks: [frontend, backend] db: image: postgres:18 environment: POSTGRES_DB: ${POSTGRES_DBNAME} POSTGRES_USER: ${POSTGRES_USER} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} volumes: [postgres_data:/var/lib/postgresql] restart: unless-stopped healthcheck: test: [CMD-SHELL, 'pg_isready -U ${POSTGRES_USER} -d ${POSTGRES_DBNAME}'] interval: 5s retries: 5 networks: [backend] adminer: image: adminer depends_on: [db] restart: always ports: [127.0.0.1:8080:8080] networks: [backend] proxy: image: nginx:stable volumes: - ./.nginx/.templates:/etc/nginx/templates - static_volume:/app/static:ro - media_volume:/app/media:ro restart: unless-stopped ports: [80:80, 443:443] environment: - NGINX_HOSTNAME=${NGINX_HOSTNAME} - NGINX_PORT=80 - NGINX_SSL_PORT=443 depends_on: [web] networks: [frontend] networks: frontend: backend: internal: true volumes: postgres_data: static_volume: media_volume: