@Nolan81
программист

Как в yii2 advanced шаблон запустить в докере с доменными именами?

Привет.
Yii2 шаблон advanced имеет такой docker-compose
version: '3.2'

services:

  frontend:
    build: frontend
    ports:
      - 20080:80
    volumes:
      # Mount source-code for development
      - ./:/app

  backend:
    build: backend
    ports:
      - 21080:80
    volumes:
      # Mount source-code for development
      - ./:/app

Есть приложение frontend и backend, вот Dockerfile фронта
FROM yiisoftware/yii2-php:8.1-apache

# Change document root for Apache
RUN sed -i -e 's|/app/web|/app/frontend/web|g' /etc/apache2/sites-available/000-default.conf

Если сейчас запустить, то приложения будут доступны по адресам
http:/localhost:20080     фронт
http:/localhost:21080        бэк


Но хотелось бы чтобы доменные имена были свои, человекопонятные, без портов.

Если сделать
1) фронту в образ добавлю RUN sed -i -e 's|#ServerName www.example.com|ServerName yii2site.front|g' /etc/apache2/sites-available/000-default.conf
2) в hosts добавлю 127.0.0.1 yii2site.front
3) В конфиге фронта, меняю порт с 20080:80 на 80:80

, то могу к фронту обращаться по адресу yii2site.front.

Но то же самое я не могу сделать бэку, т.к. порт 80 занят, а в hosts нельзя указать другой порт для домена.

Как решаются такие задачи?
  • Вопрос задан
  • 98 просмотров
Пригласить эксперта
Ответы на вопрос 1
@q2digger
никого не трогаю, починяю примус
такие задачи решаются установкой реверс-прокси, например nginx или traefik
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы