Настройка конфигурации Docker Multisite (среда VIPGo) - PullRequest
0 голосов
/ 20 июня 2019

Я пытаюсь создать конфигурацию многосайтового докера, и я не уверен, что делать с существующим docker-compose.yml, который я использую. У меня уже есть, так что я могу раскрутить столько сайтов, сколько захочу, используя сеть. Вот общий docker-compose.yml для справки.

version: "3.3"
services:
  photon:
    image: "chriszarate/photon:latest"
  mysql:
    image: "mariadb:10.2"
    container_name: "mysql-database"
    environment:
       MYSQL_ALLOW_EMPTY_PASSWORD: "yes"
       MYSQL_DATABASE: "wordpress"
       MYSQL_ROOT_PASSWORD: ""
    ports:
       - "3306:3306"
    restart: always
    volumes:
       - type: volume
      source: dbdata
      target: "/var/lib/mysql"
      volume:
        nocopy: true
      #- "./sql:/docker-entrypoint-initdb.d"
  adminer:
     image: adminer
     restart: always
     ports:
       - 8080:8080
 proxy:
   image: "jwilder/nginx-proxy:alpine"
   container_name: "proxy"
   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"
 networks:
    default:
      external:
         name: shared

 volumes:
    dbdata: {}

А вот тот, который я использую для сайтов.

version: "3.3"

 services:
    wordpress:
      container_name: "wp"
      image: "wordpress:${WP_VERSION:-4.9.7}-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: ""
       WORDPRESS_DB_USER: "root"
    external_links:
       - 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/vip-go-mu-plugins:/var/www/html/wp-content/mu-plugins"
       - "./src/site1/client-mu-plugins:/var/www/html/wp-content/client-mu-plugins"
       - "./src/site1/images:/var/www/html/wp-content/images"
       - "./src/site1/languages:/var/www/html/wp-content/languages"
       - "./src/site1/plugins:/var/www/html/wp-content/plugins"
       - "./src/site1/private:/var/www/html/wp-content/private"
       - "./src/site1/themes:/var/www/html/wp-content/themes"
       - "./src/site1/vip-config:/var/www/html/wp-content/vip-config"
     wp-cli:
       container_name: "wp-cli"
       image: "wordpress:cli-php${PHP_VERSION:-7.2}"
       environment:
          - APACHE_RUN_USER="www-data"
          - APACHE_RUN_GROUP="www-data"
    external_links:
       - 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/site1/client-mu-plugins:/var/www/html/wp-content/client-mu-plugins"
      - "./src/site1/images:/var/www/html/wp-content/images"
      - "./src/site1/languages:/var/www/html/wp-content/languages"
      - "./src/site1/plugins:/var/www/html/wp-content/plugins"
      - "./src/site1/private:/var/www/html/wp-content/private"
      - "./src/site1/themes:/var/www/html/wp-content/themes"
      - "./src/site1/vip-config:/var/www/html/wp-content/vip-config"

   networks:
      default:
         external:
           name: shared

   volumes:
      wp: {}

Эта настройка отлично работает для одного сайта (любые другие сайты, которые я раскручиваю, когда делаю копии папки), и она копирует среду, которая есть в VIP Go. Но я не уверен, какие изменения понадобятся для работы в многосайтовой среде, поскольку каждый сайт будет иметь свою папку при запуске докера. Есть идеи?

ТИА

Примечание: мультисайты будут разными сайтами, а не поддоменами, когда он будет запущен в производство, поэтому мне нужно сохранить его таким образом, а не настраивать субдомены

...