akarpov/production.yml

98 lines
2.2 KiB
YAML

version: '3'
volumes:
production_postgres_data: {}
production_postgres_data_backups: {}
production_traefik: {}
services:
django: &django
build:
context: .
dockerfile: ./compose/production/django/Dockerfile
image: akarpov_production_django
platform: linux/x86_64
depends_on:
- postgres
- redis
volumes:
- type: bind
source: /var/www/media/
target: /app/akarpov/media/
env_file:
- ./.envs/.production/.django
- ./.envs/.production/.postgres
command: /start
redirect:
build:
context: .
dockerfile: ./compose/production/django/Dockerfile
image: akarpov_production_redirect
container_name: akarpov_production_redirect
platform: linux/x86_64
depends_on:
- postgres
- redis
volumes:
- type: bind
source: /var/www/media/
target: /app/akarpov/media/
env_file:
- ./.envs/.production/.django
- ./.envs/.production/.postgres
command: /start-redirect
traefik:
build:
context: .
dockerfile: ./compose/production/traefik/Dockerfile
image: akarpov_production_traefik
depends_on:
- django
- redirect
volumes:
- production_traefik:/etc/traefik/acme
ports:
- "0.0.0.0:80:80"
- "0.0.0.0:443:443"
- "0.0.0.0:3000:3000"
- "0.0.0.0:5555:5555"
postgres:
build:
context: .
dockerfile: ./compose/production/postgres/Dockerfile
image: akarpov_production_postgres
volumes:
- production_postgres_data:/var/lib/postgresql/data:Z
- production_postgres_data_backups:/backups:z
env_file:
- ./.envs/.production/.postgres
redis:
image: redis:6
celeryworker:
<<: *django
volumes:
- type: bind
source: /var/www/media/
target: /app/akarpov/media/
image: akarpov_production_celeryworker
command: /start-celeryworker
celerybeat:
<<: *django
volumes:
- type: bind
source: /var/www/media/
target: /app/akarpov/media/
image: akarpov_production_celerybeat
command: /start-celerybeat
flower:
<<: *django
image: akarpov_production_flower
command: /start-flower