【发布时间】:2021-03-17 11:20:18
【问题描述】:
我尝试部署一个可与主机数据库一起使用的 drupal 6 docker 容器(用于在将其部署到远程数据库之前进行测试),但尽管遵循了我发现的不同建议,但它只是不想工作。 (特别是在这个问题From inside of a Docker container, how do I connect to the localhost of the machine? 谈到主机模式时,所以即使问题看起来很像,也不觉得它是重复的)
Dockerfile
FROM php:7.3-apache
COPY . /var/www/html
EXPOSE 80
RUN chmod o+w /var/www/html/sites/default/settings.php &&\
chmod o+w /var/www/html/sites/default/files &&\
apt-get update &&\
apt-get install -y libfreetype6-dev libjpeg62-turbo-dev libpng-dev &&\
docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ &&\
docker-php-ext-install mysqli gd mbstring pdo pdo_mysql &&\
docker-php-ext-enable mysqli
docker-compose.yml
version: '3.8'
services:
website:
build:
context: ./drupal-6-lts
network: host
volumes:
- ./drupal-6-lts:/var/www/html
ports:
- 8080:80
对于数据库连接,我指定了这些设置:
驱动程序:mysqli Host : 127.0.0.1:8889 (mysql端口是8889,我也试过用localhost替换127.0.0.1) 以及正确的用户名、密码和数据库名称。
drupal 安装在我仅使用 MAMP 启动时确实可以工作,但它似乎无法在容器中执行到 db 的链接,尽管 docker-compose.yml 中有 network: host 语句
当我尝试 Do Trung Duc 解决方案时,执行 docker compose build 时出现此错误:
services.network_mode 必须是映射
【问题讨论】:
-
你试过用物理IP连接数据库吗?