phabricator在dockerized php容器中找不到dockerized mysql
我正试图推出phabricator作为docker形象。 问题是phabricator返回一个Cannot Find MySQL!
当我访问phabricator / webroot的页面。 当我尝试指定mysql.host
, mysql.port
, mysql.user
和mysql.pass
参数时,它似乎仍然失败。
编辑:我正在尝试这个与docker机的macOS“塞拉利昂”。
我通过分离出三个组件来完成这个工作:
- nginx图像
- php-fpm图像
- 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用户的全局权限。