Сучасні веб-додатки складаються з різних компонентів, таких як фронтенд, бекенд і база даних. 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?