phabricator在dockerized php容器中找不到dockerized mysql

我正试图推出phabricator作为docker形象。 问题是phabricator返回一个Cannot Find MySQL! 当我访问phabricator / webroot的页面。 当我尝试指定mysql.hostmysql.portmysql.usermysql.pass参数时,它似乎仍然失败。

编辑:我正在尝试这个与docker机的macOS“塞拉利昂”。

我通过分离出三个组件来完成这个工作:

  1. nginx图像
  2. php-fpm图像
  3. mysql映像

nginx映像和php-fpm映像通过相同的卷共享数据。 具体来说,我在数据/目录中存储必要的phabricator文件(phabricator,liphutil,arcanist)。 我的docker项目的结构如下所示:

 docker-project/ - docker-compose.yml - php_setup.conf + data/ + phabricator/ + arcanist/ + liphutil/ + nginx/ - Dockerfile + php-fpm/ - Dockerfile 

php_setup.conf是phabricator php项目的必备nginxconfiguration,它被复制到nginx容器中。

泊坞窗,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提供日志错误:

无法与任何数据库主机build立连接(尝试“phabricator_config”时)。 所有的主人和副本是完全无法访问的。

数据/ phabricator / conf目录/本地/ local.json

 { "mysql.port": "3306", "mysql.pass": "12345", "mysql.user": "phabricator", "mysql.host": "mysql" } 

尽pipe有错误消息说明phabricator无法连接/查找MySQL,但事实certificate授予给phabricator用户的权限过于严格。

解决scheme:授予phabricator用户的全局权限。