Сучасні веб-додатки складаються з різних компонентів, таких як фронтенд, бекенд і база даних. Docker дозволяє нам зручно налаштовувати ці компоненти, але їх подальше управління може бути складним через необхідність налаштування великої кількості зв'язків і конфігурацій. Ось тут і приходить на допомогу Docker Compose!
Docker Compose дозволяє зібрати різні частини веб-додатку в один багатоконтейнерний додаток за допомогою конфігураційного файлу YAML. Завдяки Docker Compose ми можемо легко управляти сервісами, мережами та томами, запускаючи все за одну команду.
За замовчуванням Docker Compose використовує файл з ім'ям docker-compose.yaml. Однак можна використовувати й інші варіанти, наприклад docker-compose.dev.yaml або docker-compose.production.yaml, для різних середовищ, таких як продакшн, staging або розробка.
Приклад конфігураційного файлу:
Приклад docker-compose.yml
version: '3'
services:
frontend:
build:
context: ./frontend-angular
ports:
- "80:80"
depends_on:
- backend
backend:
build:
context: ./backend-node
ports:
- "3000:3000"
У цьому прикладі визначені два сервіси: frontend і backend. Перший відповідає за фронтенд, а другий — за бекенд. Docker автоматично будує образи з вказаних директорій і мапує порти на хості та в контейнері, щоб забезпечити доступ до цих сервісів через браузер.
Команди для роботи з Docker Compose включають:
docker-compose up --build— збирає образи та запускає сервіси.docker-compose up— запускає сервіси без пересоздавання образів.docker-compose down— зупиняє та видаляє всі контейнери, мережі та томи.docker-compose ps— показує статус запущених сервісів.docker-compose logs— переглядає логи всіх сервісів.
Docker Compose також дозволяє автоматизувати багато процесів, таких як створення середовищ для розробки, тестування та продакшн. Наприклад, ви можете швидко налаштувати все необхідне для запуску веб-додатку в локальному середовищі.
Щоб попрактикуватися, можна клонувати репозиторій з GitHub і виконати команди для запуску Docker:
git clone https://github.com/billvunguyen/docker-compose-demo.git
cd docker-compose-demo
docker-compose up
Ці команди побудують образи та запустять контейнери для фронтенду і бекенду. В результаті ви зможете отримати доступ до вашого додатку на localhost.
Docker Compose дозволяє спростити і стандартизувати процес розробки та деплою веб-додатків, забезпечуючи ефективне управління різними сервісами та середовищами.
Перекладено з: How to deploy a website using Docker Compose?