2017-08-17 9 views
3

私はドッカーのイメージとしてphabricatorを起動しようとしています。問題は、私がphabricator/webrootにアクセスすると、phabricatorがCannot Find MySQL!ページを返すことです。 mysql.hostmysql.portmysql.user、およびmysql.passパラメータを指定しようとすると、それでも失敗するようです。phabricatorは、ドッキングされたPHPコンテナ内のドッキングされたmysqlを見つけることができません

EDIT:ドッカーマシンのmacOS "Sierra"でこれを試しています。

私は、次の3つのコンポーネント分離することによって、これをやっている:

  1. nginxのイメージ
  2. のphp-FPM画像
  3. 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" 
} 
+0

これらのコンテナの開始シーケンスは何ですか?あなたはあなたのPHPサービスのために 'depends_on:mysql'を試すことができますか? – Metaphox

+0

あなたのphabricator_configをペーストしてください –

+0

@ TarunLalwani私は設定用に提供された 'local.json'ファイルを参照していると思います。 "phabricator_config"はphabricatorコードで 'addPhabricatorConfig(...)'に渡される変数です。 'mysql.host'などへの参照になります。 – Puzzled

答えて

0

エラーメッセージにもかかわらず、そのphabricatorが、それは権限がphabricatorユーザーに付与されたことが判明し、MySQLを見つけ/接続することはできませんと言ってあまりにも制限的だった。

解決策:phabricatorユーザーにグローバル許可を与えます。

関連する問題