Ich versuche, fabricator als docker image zu starten. Das Problem ist, dass der Fabricator eine Cannot Find MySQL!
Seite zurückgibt, wenn ich fabricator/webroot besuche. Wenn ich versuche, die mysql.host
, mysql.port
, mysql.user
und mysql.pass
Parameter zu spezifizieren, scheint es immer noch zu versagen.fabricator kann dockerized mysql in dockerized php container nicht finden
EDIT: Ich versuche dies auf MacOS "Sierra" mit Docker-Maschine.
ich diese drei Komponenten durch Abtrennen tun:
- nginx Bild
- php-fpm Bild
- mysql Bild
Die nginx Bild und php-fpm Bild teilen Daten über das gleiche Volumen. Genauer gesagt, speichere ich die benötigten Dateien (Fabrizierer, Liphutil, Arkanist) in einem Daten/Verzeichnis. Die Struktur meiner Docker Projekt sieht wie folgt aus:
docker-project/
- docker-compose.yml
- php_setup.conf
+ data/
+ phabricator/
+ arcanist/
+ liphutil/
+ nginx/
- Dockerfile
+ php-fpm/
- Dockerfile
Die php_setup.conf
ist nur die erforderliche nginx-Konfiguration für das Phabricator PHP-Projekt, das in den nginx Container kopiert wird.
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
Ich bin in der Lage zu telnet mysql 3306
Host aus dem php-fpm Bild, so ist es klar vorhanden. Ich bin mir jedoch nicht sicher, ob dieses Problem auftritt, weil ich die Fabricator-Projekte auf einem Host-Volume und nicht im Container selbst habe.
Ich hoffe, dass jemand mich in die richtige Richtung zeigen kann.
Protokollfehler von Phabricator auf Anfrage:
Es kann keine Verbindung zu einem Datenbank-Host etablieren (während "phabricator_config" versuchen). Alle Master und Replikate sind völlig unerreichbar.
Daten/Phabricator/conf/local/local.json
{
"mysql.port": "3306",
"mysql.pass": "12345",
"mysql.user": "phabricator",
"mysql.host": "mysql"
}
Wie lautet die Startsequenz dieser Container? Kannst du 'depends_on: mysql' für deinen PHP-Dienst versuchen? – Metaphox
Paste your phabricator_config –
@TarunLalwani Ich nehme an, Sie beziehen sich auf die 'local.json' Datei für die Konfiguration zur Verfügung gestellt (ich habe es oben hinzugefügt). Der "fabricator_config" ist eine Variable, die in 'addPhabricatorConfig (...)' im Phabricator-Code übergeben wird. Es führt zu einem Verweis auf mysql.host, etc ... – Puzzled