version: '3.8'
services:

  author_service:
    build: 
      context: .  #Контекст сборки — текущая директория (корневая папка проекта).
      dockerfile: ./author_service/Dockerfile # Путь до Dockerfile для сборки контейнера.
    expose: # Указывает, какой порт будет открыт внутри контейнера.
      - 8008           

  publication_service:                             
    build: 
      context: .
      dockerfile: ./publication_service/Dockerfile             
    expose:
      - 8009            

  nginx:                      # Третий сервис, называемый "nginx".
    image: nginx              # Используется готовый образ NGINX из Docker Hub.
    ports:                    # Публикует порты для доступа к NGINX.
      - 8000:8000             # Проброс порта: внешний порт 8000 связан с внутренним портом 8000.
    volumes:                  # Монтирует локальные файлы/директории в контейнер.
      - ./nginx.conf:/etc/nginx/nginx.conf  # Локальный файл nginx.conf будет монтирован в контейнер по пути /etc/nginx/nginx.conf.
    depends_on:               # Зависимости. NGINX будет запускаться после запуска указанных сервисов.
      - author_service        # NGINX зависит от запуска author_service.
      - publication_service   # NGINX зависит от запуска publication_service.