Несколько сайтов на локальной машине и докер на Windoows - PullRequest
0 голосов
/ 27 сентября 2018

Я пытаюсь создать 2 сайта (с одной и той же кодовой базой только для тестирования), чтобы проверить функциональность SSO (ничего общего с моим вопросом с точки зрения SSO), и для этого я использую файл docker-compose.yml.Я взял эту копию файла yml онлайн, и он отлично работает с точки зрения настройки одного сайта.Я мог бы создать и запустить второй сайт в Docker, и это тоже будет хорошо, но я не уверен, как настроить 2 сайта одновременно (www.site1.test & www.site2.test)

Какие изменения мне нужно внести в этот составной файл или создать новый файл, чтобы у меня было 2 сайта одновременно.

version: "3.3"
services:
  wordpress:
    image: "wordpress:${WP_VERSION:-4.9.8}-php${PHP_VERSION:-7.2}-apache"
    environment:
      VIRTUAL_HOST: "${DOCKER_DEV_DOMAIN:-project.test}"
      WORDPRESS_DB_HOST: "mysql"
      WORDPRESS_DB_NAME: "wordpress"
      WORDPRESS_DB_PASSWORD: "password"
      WORDPRESS_DB_USER: "root"
    depends_on:
      - "mysql"
    networks:
      - "front"
      - "back"
    volumes:
      - "wp:/var/www/html:rw"
      - "./certs/ca-root/ca.crt:/tmp/certs/root.crt:ro"
      - "./conf/php-local.ini:/usr/local/etc/php/conf.d/local.ini:ro"
      - "./conf/wp-local-config.php:/usr/local/etc/php/autoprepend.php:ro"
      - "./src/site/vip-go-mu-plugins:/var/www/html/wp-content/mu-plugins"
      - "./src/site/client-mu-plugins:/var/www/html/wp-content/client-mu-plugins"
      - "./src/site/images:/var/www/html/wp-content/images"
      - "./src/site/languages:/var/www/html/wp-content/languages"
      - "./src/site/plugins:/var/www/html/wp-content/plugins"
      - "./src/site/private:/var/www/html/wp-content/private"
      - "./src/site/themes:/var/www/html/wp-content/themes"
      - "./src/site/vip-config:/var/www/html/wp-content/vip-config"
  wp-cli:
    image: "wordpress:cli-php${PHP_VERSION:-7.2}"
    environment:
      - APACHE_RUN_USER="www-data"
      - APACHE_RUN_GROUP="www-data"
    depends_on:
      - "mysql"
    networks:
      - "back"
    volumes:
      - "wp:/var/www/html:rw"
      - "./bin/install-wp.sh:/usr/local/bin/install-wp:ro"
      - "./conf/php-local.ini:/usr/local/etc/php/conf.d/local.ini:ro"
      - "./conf/wp-local-config.php:/usr/local/etc/php/autoprepend.php:ro"
      - "./src/vip-go-mu-plugins:/var/www/html/wp-content/mu-plugins"
      - "./src/site/client-mu-plugins:/var/www/html/wp-content/client-mu-plugins"
      - "./src/site/images:/var/www/html/wp-content/images"
      - "./src/site/languages:/var/www/html/wp-content/languages"
      - "./src/site/plugins:/var/www/html/wp-content/plugins"
      - "./src/site/private:/var/www/html/wp-content/private"
      - "./src/site/themes:/var/www/html/wp-content/themes"
      - "./src/site/vip-config:/var/www/html/wp-content/vip-config"
  photon:
    image: "chriszarate/photon:latest"
    networks:
      - "front"
  mysql:
    image: "mariadb:10.2"
    environment:
      MYSQL_ALLOW_EMPTY_PASSWORD: "yes"
      MYSQL_DATABASE: "wordpress"
      MYSQL_ROOT_PASSWORD: "password"
    networks:
      - "back"
    ports:
      - "3306:3306"
  proxy:
    image: "jwilder/nginx-proxy:alpine"
    environment:
      HSTS: "off"
      HTTPS_METHOD: "nohttps"
    ports:
      - "80:80"
      - "443:443"
    networks:
      front:
        aliases:
          - "${DOCKER_DEV_DOMAIN:-planetanalog.test}"
    volumes:
      - "//var/run/docker.sock:/tmp/docker.sock:ro"
      - "./certs/self-signed:/etc/nginx/certs:ro"
      - "./conf/nginx-proxy.conf:/etc/nginx/conf.d/proxy.conf:ro"
      - "./conf/nginx-proxy-wordpress.conf:/etc/nginx/vhost.d /${DOCKER_DEV_DOMAIN}_location:ro"

  networks:
    front: {}
    back: {}

  volumes:
    wp: {}

Я не эксперт, поэтому я ценю любые ответы.

ТИА

1 Ответ

0 голосов
/ 28 сентября 2018

Я не знаю, как это сделать с двумя разными сетями, но если вы дадите своей сети по умолчанию собственное имя, вы можете использовать ее и связывать контейнеры в нескольких файлах компоновки.

Пример

Отбросьте сетевые блоки для каждой службы и установите сеть по умолчанию для каждого составного файла.

docker-compose-backend.yml:

version: "3.3"
services:
  photon:
    image: "chriszarate/photon:latest"
  mysql:
    image: "mariadb:10.2"
    environment:
      MYSQL_ALLOW_EMPTY_PASSWORD: "yes"
      MYSQL_DATABASE: "wordpress"
      MYSQL_ROOT_PASSWORD: "password"
    ports:
      - "3306:3306"
  proxy:
    image: "jwilder/nginx-proxy:alpine"
    environment:
      HSTS: "off"
      HTTPS_METHOD: "nohttps"
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - "//var/run/docker.sock:/tmp/docker.sock:ro"
      - "./certs/self-signed:/etc/nginx/certs:ro"
      - "./conf/nginx-proxy.conf:/etc/nginx/conf.d/proxy.conf:ro"
      - "./conf/nginx-proxy-wordpress.conf:/etc/nginx/vhost.d /${DOCKER_DEV_DOMAIN}_location:ro"

  networks:
    default:
      external:
        name: back

  volumes:
    wp: {}

docker-compose-wp1.yml:

version: "3.3"
services:
  wordpress:
    image: "wordpress:${WP_VERSION:-4.9.8}-php${PHP_VERSION:-7.2}-apache"
    environment:
      VIRTUAL_HOST: "${DOCKER_DEV_DOMAIN:-project.test}"
      WORDPRESS_DB_HOST: "mysql"
      WORDPRESS_DB_NAME: "wordpress"
      WORDPRESS_DB_PASSWORD: "password"
      WORDPRESS_DB_USER: "root"
    depends_on:
      - "mysql"
    volumes:
      - "wp:/var/www/html:rw"
      - "./certs/ca-root/ca.crt:/tmp/certs/root.crt:ro"
      - "./conf/php-local.ini:/usr/local/etc/php/conf.d/local.ini:ro"
      - "./conf/wp-local-config.php:/usr/local/etc/php/autoprepend.php:ro"
      - "./src/site/vip-go-mu-plugins:/var/www/html/wp-content/mu-plugins"
      - "./src/site/client-mu-plugins:/var/www/html/wp-content/client-mu-plugins"
      - "./src/site/images:/var/www/html/wp-content/images"
      - "./src/site/languages:/var/www/html/wp-content/languages"
      - "./src/site/plugins:/var/www/html/wp-content/plugins"
      - "./src/site/private:/var/www/html/wp-content/private"
      - "./src/site/themes:/var/www/html/wp-content/themes"
      - "./src/site/vip-config:/var/www/html/wp-content/vip-config"
  wp-cli:
    image: "wordpress:cli-php${PHP_VERSION:-7.2}"
    environment:
      - APACHE_RUN_USER="www-data"
      - APACHE_RUN_GROUP="www-data"
    depends_on:
      - "mysql"
    volumes:
      - "wp:/var/www/html:rw"
      - "./bin/install-wp.sh:/usr/local/bin/install-wp:ro"
      - "./conf/php-local.ini:/usr/local/etc/php/conf.d/local.ini:ro"
      - "./conf/wp-local-config.php:/usr/local/etc/php/autoprepend.php:ro"
      - "./src/vip-go-mu-plugins:/var/www/html/wp-content/mu-plugins"
      - "./src/site/client-mu-plugins:/var/www/html/wp-content/client-mu-plugins"
      - "./src/site/images:/var/www/html/wp-content/images"
      - "./src/site/languages:/var/www/html/wp-content/languages"
      - "./src/site/plugins:/var/www/html/wp-content/plugins"
      - "./src/site/private:/var/www/html/wp-content/private"
      - "./src/site/themes:/var/www/html/wp-content/themes"
      - "./src/site/vip-config:/var/www/html/wp-content/vip-config"

  networks:
    default:
      external:
        name: back

Затем вы можете раскрутить еще несколько файлов, например docker-compose-wp2.yml, с похожим содержанием.

...