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: volumes: postgres_data: static_volume: media_volume: