Всем привет!
Пытаюсь настроить локальную среду разработки (LAMP), разбираюсь с Docker.
Все сайты у меня лежат в папке Sites с такой структурой:
/Sites
-- site1.local
-- www
-- site2.local
-- www
Для каждого сайта необходима свой версия PHP, MySQL и так далее.
Получилось написать такой docker-compose и запустить 1 сайт (используется php:7.1-apache):
version: "3"
services:
webserver:
build:
context: ./bin/webserver
container_name: 'sp-webserver'
restart: 'always'
ports:
- "80:80"
- "443:443"
links:
- mysql
volumes:
- ${DOCUMENT_ROOT-./www}:/var/www/html
- ${PHP_INI-./config/php/php.ini}:/usr/local/etc/php/php.ini
- ${VHOSTS_DIR-./config/vhosts}:/etc/apache2/sites-enabled
- ${LOG_DIR-./logs/apache2}:/var/log/apache2
mysql:
build: ./bin/mysql
container_name: 'sp-mysql'
restart: 'always'
ports:
- "3306:3306"
volumes:
- ${MYSQL_DATA_DIR-./data/mysql}:/var/lib/mysql
- ${MYSQL_LOG_DIR-./logs/mysql}:/var/log/mysql
environment:
MYSQL_ROOT_PASSWORD: secret
MYSQL_DATABASE: sp-demo
MYSQL_USER: sp-demo
MYSQL_PASSWORD: sp-demo
phpmyadmin:
image: phpmyadmin/phpmyadmin
container_name: 'rb-phpmyadmin'
links:
- mysql
environment:
PMA_HOST: mysql
PMA_PORT: 3306
ports:
- '8080:80'
volumes:
- /sessions
redis:
container_name: 'rb-redis'
image: redis:latest
ports:
- "6379:6379"
Сайт доступен по
http://localhost:80
Вопросы:
1) Как сделать доступ к сайту по локальному домену? Например,
site1.local вместо
http://localhost:80. Слышал про
https://github.com/jwilder/nginx-proxy, но не понимаю, как это настраивать с Apache в данном случае.
2) Как сделать то же самое для второго сайта (site2.local), чтобы запустить их одновременно? Я так понимаю, что нужно будет менять порты (80, 443 и 3306), иначе будет конфликт при
docker-compose up -d
? Возможно ли сделать это без смены портов?
Спасибо за ответы!