Laravel + Docker

Par M4dr0x, il y a 10 ans


Bonjour,

Afin de tester un environnement sur docker (pour remplacer wamp et avoir une configuration plus fidele aux serveurs), j'ai suivi le tutos de grafikart et mis en place un environnement fonctionnel.
Je suis bien connecté à la base de donnée en utilisant le fichier ".env", je recupere bien les donnees (transfert du projet de wamp vers docker).

Cependant je rencontre un petit problème avec les migrations

Ce que je fais

php artisan migrate ```

Ce que j'obtiens

[PDOException] SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: H¶te inconnu. [ErrorException] PDO::__construct(): php_network_getaddresses: getaddrinfo failed: H¶te inconnu.```

Au passage, est-il possible de faire fonctionner HeidiSQL avec Docker?

Merci d'avance pour vos réponses

7 réponses

Lartak, il y a 10 ans

Bonjour.
L'erreur est explicite, il y a un problème au niveau de l'hôte (host).
Pour répondre à ta seconde question, la réponse est oui, il te suffit de te connecter en SSH depuis HeidiSQL, il te faudra également Plink, puis bien faire la configuration sur HeidiSQL bien sûr.

M4dr0x, il y a 10 ans

Merci pour ta réponse Lartak au niveau de heidiSQL.
Cependant pour la migrations, je suis bien d'accord avec toi sur le problème de host

Dans mon fichier '.env' j'ai bien

DB_HOST=db DB_DATABASE=lab DB_USERNAME=root DB_PASSWORD=root

Et je n'ai pas de soucis pour récupérer mes données dans la base, pourquoi donc la migration ne reconnait pas le host?

arnich, il y a 10 ans

Comment est monté ton env docker et comment lance tu php ?
A mon avis tu lance php sur ta machine et non le php de ton container docker. Donc il ne connait pas db

M4dr0x, il y a 10 ans

J'avais aussi pensé à cette solution, j'ai donc creer un alias

php = 'docker exec -ti docker_web_1 php'

mais la commande migrate me renvoie cette fois

Could not open input file: artisan
khaleader, il y a 10 ans

utilisez homestead de laravel est Hop ! aucun problème par la suite

arnich, il y a 10 ans

Quand tu fais un

docker exec -ti docker_web_1 bash

Tu es dans quel dossier ? Car c'est dans ce dossier que va etre executer ta commande php

Perso pour l'allias php j'ai ca :

alias php='docker run -it --rm --name docker_php_cli -v "$PWD":/usr/src/myapp -w /usr/src/myapp --link docker_db_1:db php:latest php'
M4dr0x, il y a 10 ans

J'ai compris quand je fais php via mon alias il n'est pas du tout dans le bon dossier. il faut donc vraiment le faire depuis le contenair.
cela me va pour le moment. merci à tous de votre contribution