我正在尝试将phabricator作为docker镜像启动。问题在于,当我访问phabricator/webroot时,phabricator返回一个“无法找到MySQL!”页面。当我尝试指定mysql.host、mysql.port、mysql.user和mysql.pass参数时,它似乎仍然失败。
编辑:我正在macOS“Sierra”上使用docker-machine进行尝试。
我通过分离三个组件来完成这个过程:
1. nginx镜像 2. php-fpm镜像 3. mysql镜像
nginx镜像和php-fpm镜像通过相同的卷共享数据。具体而言,我将所需的phabricator文件(phabricator、liphutil、arcanist)存储在data/目录中。我的docker项目结构如下:
我能够从php-fpm镜像中
我希望有人能指导我正确的方向。 phabricator请求提供的日志错误:
无法建立到任何数据库主机的连接(尝试“phabricator_config”)。所有主服务器和副本都完全无法访问。 data/phabricator/conf/local/local.json
编辑:我正在macOS“Sierra”上使用docker-machine进行尝试。
我通过分离三个组件来完成这个过程:
1. nginx镜像 2. php-fpm镜像 3. mysql镜像
nginx镜像和php-fpm镜像通过相同的卷共享数据。具体而言,我将所需的phabricator文件(phabricator、liphutil、arcanist)存储在data/目录中。我的docker项目结构如下:
docker-project/
- docker-compose.yml
- php_setup.conf
+ data/
+ phabricator/
+ arcanist/
+ liphutil/
+ nginx/
- Dockerfile
+ php-fpm/
- Dockerfile
php_setup.conf
是Phabricator PHP项目所需的Nginx配置文件,会被复制到Nginx容器中。
docker-compose.yml
version: "2"
services:
web:
build:
context: .
dockerfile: nginx/Dockerfile
ports:
- "80:80"
volumes:
- ./data:/srv
php:
build:
context: .
dockerfile: php-fpm/Dockerfile
volumes:
- ./data:/srv
mysql:
image: mysql
environment:
- MYSQL_ALLOW_EMPTY_PASSWORD=yes
- MYSQL_USER=phabricator
- MYSQL_PASSWORD=12345
我能够从php-fpm镜像中
telnet mysql 3306
主机,因此它显然是可用的。但是,我不确定这个问题是否出现是因为我将phabricator项目存储在主机卷中,而不是容器本身中。我希望有人能指导我正确的方向。 phabricator请求提供的日志错误:
无法建立到任何数据库主机的连接(尝试“phabricator_config”)。所有主服务器和副本都完全无法访问。 data/phabricator/conf/local/local.json
{
"mysql.port": "3306",
"mysql.pass": "12345",
"mysql.user": "phabricator",
"mysql.host": "mysql"
}
depends_on: mysql
吗? - Metaphoxlocal.json
文件(我已将其添加在上面)。"phabricator_config" 是传递到 phabricator 代码中的addPhabricatorConfig(...)
的变量。它会导致对mysql.host
等的引用。 - Puzzled