Ответ
Да, активно использую Docker Compose для оркестрации многоконтейнерных приложений в среде разработки и для тестирования. Он позволяет декларативно описывать все сервисы, сети и тома в одном docker-compose.yml файле, что значительно упрощает запуск и управление.
Пример конфигурации для веб-приложения с бэкендом и базой данных:
version: '3.8'
services:
backend:
build: ./backend
ports:
- "5000:5000"
environment:
- DB_HOST=db
depends_on:
- db
volumes:
- ./backend:/app
db:
image: postgres:15-alpine
environment:
POSTGRES_PASSWORD: ${DB_PASSWORD}
volumes:
- postgres_data:/var/lib/postgresql/data
volumes:
postgres_data:
Основные команды в работе:
docker compose up -d— запуск стека в фоновом режиме.docker compose logs -f backend— потоковый просмотр логов конкретного сервиса.docker compose down -v— остановка стека с удалением анонимных томов.docker compose exec db psql -U postgres— выполнение команд внутри запущенного контейнера.
Практическое применение: Я использую Compose для локальной разработки, чтобы воспроизвести продакшен-подобное окружение (например, с PostgreSQL, Redis, Elasticsearch), и для прогона интеграционных тестов в CI/CD пайплайне (запуская стек, выполняю тесты, затем останавливаю).