【问题标题】:2 Drupal images in one machine2 个 Drupal 图像在一台机器上
【发布时间】:2020-08-08 07:19:01
【问题描述】:

说明:
我试图找到一种在单台机器上使用 docker compose 运行 2 个 Drupal 容器的方法。我目前在将每个 Drupal 存储“绑定”到 MySQL 中的单独位置时遇到问题。

这是 Docker Compose 的以下 YAML 文件:

---
version: '3'

services:
  drupal:
    build: ./
    image: geerlingguy/drupal:latest
    environment:
      DRUPAL_DATABASE_HOST: drupal-mysql
      DRUPAL_DATABASE_PORT: 3306
      DRUPAL_DATABASE_NAME: drupal
      DRUPAL_DATABASE_USERNAME: drupal
      DRUPAL_DATABASE_PASSWORD: drupal
      # Generate a salt with: `php -r "echo bin2hex(random_bytes(25));"`
      DRUPAL_HASH_SALT: db0de8a1556aa5348f87cfc950cd2c9641713d46e9412c8b05
    ports:
      #assign random port on the host
      - "80"
    depends_on:
      - mysql
    restart: always
    # new
    working_dir: /var/www/html
    # Uncomment the volumes line and set to the local path of your Drupal
    # installation, if you need to work with a local codebase.
    volumes:
      # - ~/Sites/drupal-container:/var/www/html:rw,delegated
      - /Sites/drupal-container:/var/www/html:rw,delegated

  drupal2:
    build: ./
    image: geerlingguy/drupal:latest
    environment:
      DRUPAL_DATABASE_HOST: drupal-mysql
      DRUPAL_DATABASE_PORT: 3306
      DRUPAL_DATABASE_NAME: drupal
      DRUPAL_DATABASE_USERNAME: drupal
      DRUPAL_DATABASE_PASSWORD: drupal
      # Generate a salt with: `php -r "echo bin2hex(random_bytes(25));"`
      DRUPAL_HASH_SALT: db0de8a1556aa5348f87cfc950cd2c9641713d46e9412c8b05
    ports:
      #assign random port on the host
      - "80"
    depends_on:
      - mysql
    restart: always
    working_dir: /var/www/html
    volumes:
      - /Sites/drupal-container2:/var/www/html:rw,delegated

  mysql:
    image: mysql:5.7
    container_name: drupal-mysql
    # new
    volumes:
      - /Sites/drupal-container:/var/lib/mysql
    environment:
      MYSQL_RANDOM_ROOT_PASSWORD: 'yes'
      MYSQL_DATABASE: drupal
      MYSQL_USER: drupal
      MYSQL_PASSWORD: drupal
    ports:
      - "3306:3306"

networks:
    # Define the default network
    # Services will use this automatically without having a networks key
    default:
        external:
            name: macvlan_net

仅供参考,名为 macvlan_net 的网络是在 YAML 文件之外手动定义的。 (这允许我使用 IP 地址访问 Drupal 容器)

问题:
当我运行 docker-compose up 时,我得到了 2 个 Drupal 容器:
Drupal 1 - 132.177.14.1
Drupal 2 - 132.177.14.2

但是一旦我在 Drupal 1 上运行了初始设置,Drupal 2 似乎也在镜像我所做的设置。

预期结果:
访问 Drupal 2 时,我应该会看到初始设置。

【问题讨论】:

    标签: docker drupal docker-compose content-management-system drupal-8


    【解决方案1】:

    由于您使用单个 MySql 容器来容纳两个 Drupal 实例(容器)的数据库,因此您需要确保在 Drupal 安装过程中使用唯一的数据库名称。所以在设置过程中你可以尝试:

    • Drupal 1 -> 数据库名称:drupal_1_db
    • Drupal 2 -> 数据库名称:drupal_2_db

    您的其他选择是:

    • 使用在高级选项下定义的表前缀而不是唯一的数据库名称,但这不是必需的,除非您有理由将两个网站都保留在一个数据库架构中
    • 为每个 Drupal 实例使用单独的 mysql 容器

    【讨论】:

      猜你喜欢
      • 2011-02-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-22
      • 1970-01-01
      • 2018-01-06
      相关资源
      最近更新 更多