version: "3.4"


services:

  platform-nginx:
    image: mathwave/sprint-repo:platform-nginx
    networks:
      - net
      - common-infra-nginx
    deploy:
      mode: replicated
      restart_policy:
        condition: any
      update_config:
        parallelism: 1
        order: start-first

  app:
    image: mathwave/sprint-repo:platform
    networks:
      - net
    environment:
      DB_HOST: "pg.develop.sprinthub.ru"
      DB_PASSWORD: $DB_PASSWORD_DEV
      MINIO_HOST: "minio.develop.sprinthub.ru"
      MINIO_SECRET_KEY: $MINIO_SECRET_KEY_DEV
      REDIS_HOST: "redis.develop.sprinthub.ru"
      REDIS_PASSWORD: $REDIS_PASSWORD_DEV
      RABBITMQ_HOST: "rabbitmq.develop.sprinthub.ru"
      RABBITMQ_PASSWORD: $RABBITMQ_PASSWORD_DEV
      VK_SERVICE_TOKEN: $VK_SERVICE_TOKEN
      YANDEX_SERVICE_TOKEN: $YANDEX_SERVICE_TOKEN
      PLATFORM_SECURITY_TOKEN: $PLATFORM_SECURITY_TOKEN
    command: runserver 0.0.0.0:8000
    healthcheck:
      test: curl --fail http://0.0.0.0:8000/ping || exit 1
      interval: 60s
      retries: 5
      start_period: 10s
      timeout: 10s
    deploy:
      mode: replicated
      restart_policy:
        condition: any
      update_config:
        parallelism: 1
        order: start-first

  migrate:
    image: mathwave/sprint-repo:platform
    environment:
      DB_HOST: "pg.develop.sprinthub.ru"
      DB_PASSWORD: $DB_PASSWORD_DEV
      MINIO_HOST: "minio.develop.sprinthub.ru"
      MINIO_SECRET_KEY: $MINIO_SECRET_KEY_DEV
    command: migrate
    deploy:
      mode: replicated
      restart_policy:
        condition: on-failure
      update_config:
        parallelism: 1
        order: start-first

networks:
  net:
    driver: overlay
  common-infra-nginx:
    external: true