Docker в Windows: как запустить несколько веб-сайтов (стек LAMP)? - PullRequest
0 голосов
/ 04 марта 2019

Я пытаюсь настроить локальную среду для веб-разработки (стек LAMP) с помощью Docker.

Все веб-сайты живут в папке с именами сайтов со следующей структурой:

/Sites
   -- site1.local
      -- www
   -- site2.local
      -- www

Для каждоговеб-сайт Мне нужна собственная версия PHP и MySQL.

До сих пор мне удавалось запустить один локальный веб-сайт с этим docker-compose.yml (использует 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) Как сделать его доступным для домена домена, например, http://site1.local вместо http://localhost:80?Я слышал, что мне нужен прокси-сервер Nginx для этого (https://github.com/jwilder/nginx-proxy),, но я не могу понять, как настроить его с помощью Apache в моем случае.

2) Как настроить второй веб-сайт (http://site2.local) таким же образом запустить его одновременно?Насколько я понимаю, мне нужно изменить все порты (80, 443 и 3306), в противном случае у меня возникнет конфликт при запуске docker-compose up -d?Можно ли без смены портов?

Спасибо за ответы!

...