Конфигурационный файл docker-compose.yml
используется для описания многоконтейнерных приложений, и каждый пункт в этом файле играет важную роль в определении структуры и параметров приложения. Вот подробное описание ключевых пунктов:
version
Определяет версию синтаксиса Docker Compose, используемую в файле. Это позволяет определить доступные функции и форматы конфигурации.
services
Секция services
содержит описания каждого сервиса, который составляет ваше приложение. Каждый сервис обычно представляет собой отдельный контейнер Docker.
service_name
Это имя сервиса. Оно используется для обращения к сервису внутри файла Docker Compose и в других конфигурационных файлах.
image
Определяет образ Docker, который будет использоваться для создания контейнера этого сервиса. Образ может быть взят из публичного репозитория Docker Hub или быть определенным локально.
build
Вместо использования образа из Docker Hub, этот параметр позволяет собирать образ из Dockerfile в текущем контексте сборки.
ports
Определяет порты, которые сервис использует внутри контейнера и их привязку к портам хоста. Например, "<host_port>:<container_port>"
.
volumes
Позволяет настроить монтирование томов или файловых систем внутри контейнера. Это может быть использовано для сохранения данных или предоставления доступа к файлам извне контейнера.
environment
Определяет переменные окружения, которые будут доступны внутри контейнера при его выполнении. Это может быть использовано для настройки приложения или работы с базой данных.
depends_on
Определяет зависимости между сервисами. Docker Compose будет запускать сервисы в порядке их зависимостей.
Пример:
version: '3'
services:
web:
image: nginx:latest
ports:
- "80:80"
volumes:
- ./web-content:/usr/share/nginx/html
environment:
ENV_VAR: "value"
depends_on:
- db
db:
image: postgres:latest
environment:
POSTGRES_DB: mydatabase
POSTGRES_USER: myuser
POSTGRES_PASSWORD: mypassword
Это простой пример, где есть два сервиса: web
с веб-сервером Nginx и db
с базой данных PostgreSQL. Они определены с использованием различных параметров, отвечающих за их настройку, связи и конфигурацию.