我有一个自定义的 Apache2/PHP 容器,我想链接到我的 MySQL 容器。
两个容器都通过 Rancher 运行。
从 Apache2 容器创建图像的 Dockerfile 如下所示:
FROM ubuntu:latest
RUN apt-get update && apt-get -y upgrade && DEBIAN_FRONTEND=noninteractive apt-get -y install \
apache2 php7.0 php7.0-mysql libapache2-mod-php7.0 curl lynx-cur libpng-dev curl libcurl4-openssl-dev
RUN docker-php-ext-install mysql mysqli pdo pdo_mysql gd curl
RUN a2enmod php7.0
RUN a2enmod rewrite
RUN service apache2 restart
这个容器运行一个 Yii 1 应用程序,它在一个常规的非 dockerized LAMP 堆栈上运行得很好。这个容器只是通过 Rancher 连接到一个常规的 mysql:latest 容器。我还有一个 phpmyadmin 容器,可以很好地连接到它。我检查了应该连接到 mysql 容器的用户的权限和密码 1000 次,它们似乎没问题。
然而,我总是得到一个 Yii CDbConnection 无法打开数据库连接。
我得到的错误(查看日志文件)如下:
SQLSTATE[HY000] [2002] No such file or directory
最佳答案
我发现了问题(不同事物的组合):
- www-data 没有读/写权限
- 图片已更改为 php:7.0-apache
- 从 docker-php-ext-install 中删除了 mysql
- 我发现我的配置文件不正确(它引用了 db-address localhost,它被设置为链接名称)
关于php - 将自定义 Docker 容器链接到 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45773323/