version: '3.8'

networks:
  app-net:
    driver: overlay
# Не должно быть привязки к подсети, она может быть любой

services:

  nginx-front:
    image: my_best_image:latest # Нужно указать корректный контейнер и путь к registry
    networks:
      - app-net # Названия сетей
    ports:
      - "80:80" # Порты должны быть указаны
    volumes:
      - "/etc/localtime:/etc/localtime:ro" # Используется только для того, чтобы синхронизировать вермя внутри контейнера и хостовой машины
      - /mnt/shared_vol:/www/public/uploads # Следует учесть, что предоставляется монтированный каталог на хостовой машине, репликация прозодит между всеми хостами по тем же путям
    configs:
      - config # Рекомендуется использовать docker config для публикации конфигов для всех контейнеров, где они должны быть
    secrets:
      - secret # Хранение чувствительных данных в docker secret
    deploy:
      replicas: 2 # Нужно указывать расчетное количество в соостветствии с нагрузкой, которым DevOps может управлять
      placement:
        max_replicas_per_node: 1 # Стандартная политика, которая рекомендуется, но не обязательна
      update_config:
        parallelism: 1
        delay: 2s
      restart_policy:
        condition: any
        delay: 5s
        window: 20s

configs:
  config:
    external: true

secrets:
  secret:
    external: true
