vji:docker_compose:start
2.2 Создайте файл docker-compose.yml
- Создаем и открываем файл для редактирования
nano docker-compose.yml
- Или используйте любой другой редактор: vim, code, etc.
# Определение всех сервисов (контейнеров) в системе
services:
# ============================================================
# Бэкенд-приложение - обрабатывает HTTP запросы и показывает заголовки
# ============================================================
app:
build: . # Собираем образ из Dockerfile в текущей директории
container_name: backend-app # Фиксированное имя для удобства
networks:
- test-net # Подключаем к внутренней сети
# Приложение слушает порт 8000 внутри контейнера
# Не публикуем порт наружу - доступ только через nginx
# ============================================================
# NGINX 1 - Первый обратный прокси (публичная точка входа)
# ============================================================
nginx1:
image: nginx:alpine # Легковесный образ NGINX на Alpine Linux
container_name: nginx1
ports:
- "8081:80" # Публикуем порт 8081 хоста на порт 80 контейнера
volumes:
# Монтируем конфигурацию (только для чтения, безопасность)
- ./nginx/nginx1.conf:/etc/nginx/conf.d/default.conf:ro
networks:
- test-net
depends_on:
- app # Ждём запуска приложения
- nginx2 # Ждём запуска других nginx для маршрутизации
- nginx3
# ============================================================
# NGINX 2 - Второй обратный прокси (внутренний)
# ============================================================
nginx2:
image: nginx:alpine
container_name: nginx2
# Не публикуем порты наружу - работает только внутри сети
volumes:
- ./nginx/nginx2.conf:/etc/nginx/conf.d/default.conf:ro
networks:
- test-net
depends_on:
- app
- nginx3
# ============================================================
# NGINX 3 - Третий обратный прокси (внутренний)
# ============================================================
nginx3:
image: nginx:alpine
container_name: nginx3
volumes:
- ./nginx/nginx3.conf:/etc/nginx/conf.d/default.conf:ro
networks:
- test-net
depends_on:
- app
# ============================================================
# Сетевая конфигурация
# ============================================================
networks:
test-net:
driver: bridge # Стандартный драйвер сети Docker
# Все контейнеры видят друг друга по именам сервисов
# Например: nginx1 может обращаться к app, nginx2 и т.д.
vji/docker_compose/start.txt · Последнее изменение: 2026/05/27 07:23 — vji
