Инструменты пользователя

Инструменты сайта


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

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki