docker - 如何使用单独的数据库服务器运行 Bitnami Drupal 容器
问题描述
这个Bitnami Drupal Docker 镜像建议使用 Docker compose 文件运行容器,如下所示。是否可以将此容器配置为使用托管在 Azure 等云平台上的单独数据库服务器?
Drupal 网站使用来自 Github 的原始 docker-compose 文件在 localhost 上运行良好。但是当修改docker-compose.yml
为使用本地 SQL 数据库(如下)时,localhost 不会返回任何内容。本地数据库正在使用 XAMPP 运行以测试第二个文件,但奇怪的是,localhost 根本没有返回任何内容。
从技术上讲,XAMPP 使用的是 MySQL 而不是 MariaDB,不确定这是否会有所不同。
docker-compose.yml - 原创
version: '2'
services:
mariadb:
image: 'bitnami/mariadb:10.3'
environment:
- ALLOW_EMPTY_PASSWORD=yes
- MARIADB_USER=bn_drupal
- MARIADB_DATABASE=bitnami_drupal
volumes:
- 'mariadb_data:/bitnami'
drupal:
image: 'bitnami/drupal:8'
environment:
- MARIADB_HOST=mariadb
- MARIADB_PORT_NUMBER=3306
- DRUPAL_DATABASE_USER=bn_drupal
- DRUPAL_DATABASE_NAME=bitnami_drupal
- ALLOW_EMPTY_PASSWORD=yes
ports:
- '80:80'
- '443:443'
volumes:
- 'drupal_data:/bitnami'
depends_on:
- mariadb
volumes:
mariadb_data:
driver: local
drupal_data:
driver: local
docker-compose.yml - 修改
version: '2'
services:
drupal:
image: 'bitnami/drupal:8'
environment:
- MARIADB_HOST=localhost
- MARIADB_PORT_NUMBER=3306
- DRUPAL_DATABASE_NAME=docker
- DRUPAL_DATABASE_USER=root
- ALLOW_EMPTY_PASSWORD=yes
ports:
- '80:80'
- '443:443'
volumes:
- 'drupal_data:/bitnami'
volumes:
drupal_data:
driver: local
解决方案
Bitnami 开发人员在这里。Bitnami Drupal 容器支持以下用于配置 MySQL 数据库的环境变量:
- DRUPAL_DATABASE_NAME
- DRUPAL_DATABASE_USER
- DRUPAL_DATABASE_PASSWORD
- MARIADB_HOST
- MARIADB_PORT_NUMBER
下面显示了“mydatabase”RDS 数据库的一组示例值:
- DRUPAL_DATABASE_NAME=mydatabase
- DRUPAL_DATABASE_USER=username
- DRUPAL_DATABASE_PASSWORD=password123
- MARIADB_HOST=mydatabase.asdfg.us-east-1.rds.amazonaws.com
- MARIADB_PORT_NUMBER=3306
请注意,如果您要使用外部数据库,则尚不支持 SSL 连接,因此您必须保护它(即通过检查该数据库是否无法在 Internet 上远程访问)。
如果您发现任何问题,请随时创建一个新的 GitHub 问题,我们很乐意为您提供帮助。
推荐阅读
- react-native - 尝试使用 Facebook 登录时出错
- c# - ? 在 CMD 中出现而不是 ₹
- python - 如何在不重复的文件夹之间遍历和匹配多个二维数组?(Python)
- c - C程序计算抢占式SJF调度的所有时间不起作用
- flutter - 如何在同一个小部件中创建可扩展的动态线性列表和可扩展的网格列表?
- java - Java 中的点对点通信
- python - Python 中的 Azure 数据传输 API
- node.js - 带有纱线运行构建系统的 Volta 找不到指定的路径
- java - Spring Initalizr - Intellij 的自定义项目设置
- ruby-on-rails - Rails 6 控制器测试失败:expect(CreatesProject).to have_received(:new).with({name: "Runway", task_string: "start something:2"})