我正在尝试启动吞噬器作为码头形象。问题是,当我访问phabricator/webroot时,phabricator返回一个Cannot Find MySQL!页面。当我尝试指定mysql.host、mysql.port、mysql.user和mysql.pass参数时,它似乎仍然失败。
编辑:我正在macOS的“塞拉”与对接机上试用这个。
我是通过分离出三个组成部分来做到这一点的:
nginx映像和php映像通过相同的卷共享数据。具体来说,我在数据/ dir中存储必需的phabricator文件(phabricator、liphutil、arcanist)。我的码头项目的结构如下:
docker-project/
- docker-compose.yml
- php_setup.conf
+ data/
+ phabricator/
+ arcanist/
+ liphutil/
+ nginx/
- Dockerfile
+ php-fpm/
- Dockerfilephp_setup.conf只是phabricator项目所必需的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映像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"
}发布于 2017-08-18 19:32:52
尽管错误消息说phabricator无法连接/查找MySQL,但事实证明授予phabricator用户的权限限制过大。
解决方案:授予噬菌体用户全局权限。
https://stackoverflow.com/questions/45744538
复制相似问题