58 lines
1.4 KiB
YAML
58 lines
1.4 KiB
YAML
---
|
|
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:
|