私はドッカーのイメージとしてphabricatorを起動しようとしています。問題は、私がphabricator/webrootにアクセスすると、phabricatorがCannot Find MySQL!
ページを返すことです。 mysql.host
、mysql.port
、mysql.user
、およびmysql.pass
パラメータを指定しようとすると、それでも失敗するようです。phabricatorは、ドッキングされたPHPコンテナ内のドッキングされたmysqlを見つけることができません
EDIT:ドッカーマシンのmacOS "Sierra"でこれを試しています。
私は、次の3つのコンポーネント分離することによって、これをやっている:
- nginxのイメージ
- のphp-FPM画像
- MySQLの画像
nginxのイメージとPHP-FPMを同じボリュームを介して画像共有データを送信します。具体的には、必要なphabricatorファイル(phabricator、liphutil、arcanist)をdata/dirに格納します。私のドッキングウィンドウのプロジェクトの構造は次のようになります。
docker-project/
- docker-compose.yml
- php_setup.conf
+ data/
+ phabricator/
+ arcanist/
+ liphutil/
+ nginx/
- Dockerfile
+ php-fpm/
- Dockerfile
php_setup.conf
はnginxのコンテナにコピーされphabricatorのPHPプロジェクト、のためだけに必要な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によって提供さ
ログのエラー:
(「phabricator_config」をしようとしているときに)任意のデータベースのホストへの接続を確立できません。すべてのマスタとレプリカには完全に到達できません。
データ/ phabricator/confに/ローカル/ local.json
{
"mysql.port": "3306",
"mysql.pass": "12345",
"mysql.user": "phabricator",
"mysql.host": "mysql"
}
これらのコンテナの開始シーケンスは何ですか?あなたはあなたのPHPサービスのために 'depends_on:mysql'を試すことができますか? – Metaphox
あなたのphabricator_configをペーストしてください –
@ TarunLalwani私は設定用に提供された 'local.json'ファイルを参照していると思います。 "phabricator_config"はphabricatorコードで 'addPhabricatorConfig(...)'に渡される変数です。 'mysql.host'などへの参照になります。 – Puzzled