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