Ответ
Файл docker-compose.yml использует формат YAML и описывает многоконтейнерное приложение. Его структура состоит из нескольких ключевых секций верхнего уровня.
Основные секции:
version(устарело в новых версиях): Ранее указывала версию схемы файла. Сейчас Compose V2 интегрирован в Docker CLI и это поле необязательно.services: Самая важная секция, где описывается каждый контейнер (сервис) приложения. Для каждого сервиса указываются его параметры.networks: Определяет сети, которые будут использоваться сервисами для взаимодействия друг с другом.volumes: Позволяет создавать именованные тома (volumes) для постоянного хранения данных.
Пример структуры:
# Версия опциональна в современных версиях Docker Compose
# version: '3.9'
services: # Описание контейнеров
backend:
build: ./backend # Инструкция по сборке образа
ports:
- "8000:8000"
volumes:
- db_data:/var/lib/postgresql/data
networks:
- app-net
frontend:
image: nginx:1.21-alpine # Использование готового образа
ports:
- "80:80"
networks:
- app-net
volumes: # Определение именованного тома
db_data:
networks: # Определение сети
app-net:
driver: bridge
Внутри секции services для каждого сервиса могут быть определены такие параметры, как image, build, ports, environment, volumes, depends_on и другие.