Vous n'êtes pas identifié(e).
Pages : 1
Bonjour !
A des fins de tests automatisés j'essaie d'utiliser docker dans mon workflow de test. J'utilise l'image officielle prise sur dockerhub.
Dans une fonction setUp() j'ai le code suivant:
echo 'starting postgresql docker image';
echo shell_exec('docker run --name test-postgres -e POSTGRES_PASSWORD=test -d postgres');
echo shell_exec('docker start test-postgres');
sleep(3);
Une fois que cette fonction est lancée j'essaie d'instancier un objet pdo comme suivant :
new \PDO('pgsql:host=127.0.0.1;port=5432;dbname=postgres;user=postgres;password=test');
Mais ll'erreur suivante est retournée :
exception 'PDOException' with message 'SQLSTATE[08006] [7] could not connect to server: Connection refused
==> Is the server running on host "127.0.0.1" and accepting
==> TCP/IP connections on port 5432?' in /var/www/PostGreSqlJsonRepository/src/ConnectionFactory.php:22
Quand je lance l'image manuellement j'arrive à me connecter au server en rentrant :
pgsql -h 127.0.0.1 postgres postgres
Bien à vous
bouhda
Dernière modification par bouhda (22/07/2015 17:13:11)
Hors ligne
Bonjour,
Quelle est l'adresse de l'image docker que vous utilisez ? Difficile de vous aider sans savoir ce qu'elle fait.
Sinon, l'erreur signifie que l'instance est arrêtée, n'écoute pas sur le bon port ou qu'un firewall ou autre empêche la connexion. Vous pouvez regarder dans les logs postgres (s'il y en a) si l'instance démarre bien, et au bout de combien de temps elle s'arrête.
Julien.
https://rjuju.github.io/
Hors ligne
J'ai résolu l'erreur, il manquait -p 5432:5432.
Nénamoins l'approche n'est pas la bonne, car je suis obligé de mettre un sleep(5) en attendant que le server postgre s'active, on m'a recommandé de mettre en place un conteuneur php chargé de lancer les tests et qui serait lié à un conteneur postgre-sql
Hors ligne
Pages : 1