J'essaye de lancer le phabricator comme image de docker. Le problème est que phabricator renvoie une page Cannot Find MySQL!
lorsque je visite phabricator/webroot. Lorsque j'essaie de spécifier les paramètres mysql.host
, mysql.port
, mysql.user
et mysql.pass
, il semble toujours échouer.phabricator ne peut pas trouver mysql dockerized dans le conteneur php dockerized
EDIT: J'essaie ceci sur macOS "Sierra" avec docker-machine.
Je fais cela en séparant trois composantes:
- image nginx
- php-fpm l'image
- image mysql
L'image nginx et php-fpm image partager des données via le même volume. Plus précisément, je stocke les fichiers phabricateurs requis (phabricator, liphutil, arcanist), dans un répertoire data/dir. La structure de mon projet docker ressemble à ceci:
docker-project/
- docker-compose.yml
- php_setup.conf
+ data/
+ phabricator/
+ arcanist/
+ liphutil/
+ nginx/
- Dockerfile
+ php-fpm/
- Dockerfile
Le php_setup.conf
est juste la configuration nginx requise pour le projet phabricator php, qui est copié dans le récipient de 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
Je suis en mesure de telnet mysql 3306
hôte de l'image php-FPM, il est donc clairement disponible. Cependant, je ne suis pas sûr si ce problème se pose parce que j'ai les projets de phabricateurs sur un volume d'hôte, plutôt que dans le conteneur eux-mêmes. J'espère que quelqu'un peut me diriger dans la bonne direction.
erreur du journal fourni par phabricator sur demande:
Impossible d'établir une connexion à un hôte de base de données (tout en essayant « phabricator_config »). Tous les maîtres et les répliques sont complètement inaccessibles.
données/phabricator/conf/local/local.json
{
"mysql.port": "3306",
"mysql.pass": "12345",
"mysql.user": "phabricator",
"mysql.host": "mysql"
}
Quelle est la séquence de démarrage de ces conteneurs? pouvez-vous essayer 'depends_on: mysql' pour votre service php? – Metaphox
Collez votre phabricator_config –
@TarunLalwani Je suppose que vous faites référence au fichier 'local.json' fourni pour la configuration (je l'ai ajouté ci-dessus). Le "phabricator_config" est une variable passée dans 'addPhabricatorConfig (...)' dans le code du phabricateur. Il en résulte une référence à 'mysql.host', etc ... – Puzzled