Привет.
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 нельзя указать другой порт для домена.
Как решаются такие задачи?