Docker:链接到 mysql 容器的 Drupal 容器在 Drupal 安装期间无法连接到 mysql
我对 docker 还很陌生,我刚刚浏览了 CMS,看看它们的配置有多容易.到目前为止,Wordpress 和 Joomla 已经完成.
I'm fairly new to docker, and I've just been going through the CMS's to see how easy they are to configure. So far, Wordpress and Joomla check out.
当我运行链接到 mysql 的 drupal 容器时,我进入了 drupal 安装屏幕,它说连接数据库,我使用我的根凭据和数据库主机作为本地主机",并收到尝试连接的错误.我附上了一张图片来向您展示输出.drupal-config-db-output-error一个>
When I run the drupal container linked to mysql, I get to the drupal installation screen and where it says to connect the DB, and I use my root credentials and db host being 'localhost', and receive errors trying to connect. I've attached an image to show you the output.drupal-config-db-output-error
我得到的错误:
Failed to connect to your database server. The server reports the following message: SQLSTATE[HY000] [2002] No such file or directory.
对此的任何帮助都会很棒.我试图查看是否可以使用配置文件访问物理卷,但我无法使用 Kitematic 找到它们.
Any help on this would be great. I tried to see if I could access the physical the volume with the config files, but I couldn't find them using Kitematic.
谢谢!
推荐答案
以下docker compose文件将启动 Drupal 连接到另一个运行 Mysql 的容器
The following docker compose file will startup Drupal connected to another container running Mysql
db:
image: mysql
environment:
- MYSQL_ROOT_PASSWORD=letmein
- MYSQL_DATABASE=drupal
- MYSQL_USER=drupal
- MYSQL_PASSWORD=drupal
volumes:
- /var/lib/mysql
web:
image: drupal
links:
- db:mysql
ports:
- "8080:80"
volumes:
- /var/www/html/sites
- /var/www/private
请注意,drupal 容器使用 docker 链接.这将创建一个名为mysql"的/etc/hosts 条目.在运行 drupal 安装屏幕时使用它而不是localhost".
Note that the drupal container uses docker links. This will create a /etc/hosts entry called "mysql". Use this instead of "localhost" when running the drupal install screens.
自从最初起草此答案以来,docker compose 文件语法已更改.
The docker compose file syntax has changed since this answer was originally drafted.
这里是更新的语法
version: '2'
services:
mysql:
image: mysql
environment:
- MYSQL_ROOT_PASSWORD=letmein
- MYSQL_DATABASE=drupal
- MYSQL_USER=drupal
- MYSQL_PASSWORD=drupal
volumes:
- /var/lib/mysql
web:
image: drupal
depends_on:
- mysql
ports:
- "8080:80"
volumes:
- /var/www/html/sites
- /var/www/private
相关文章