I’m setting up a CI using Docker using Github workflows for my Symfony project. I use for this an image of PHP8.1-fpm and Pgsql-13-alpine.
The docker-compose.test.yaml
:
version: '3.3'
services:
phptest:
build: ./devops/docker/tests/docker/php
volumes:
- .:/var/www:delegated
links:
- dbtest
networks:
- test
dbtest:
image: postgres:${POSTGRES_VERSION:-13}-alpine
environment:
POSTGRES_DB: test
POSTGRES_PASSWORD: test
POSTGRES_USER: test
ports:
- 5431:5432
networks:
- test
networks:
test:
The .env.test
:
# define your env variables for the test env here
KERNEL_CLASS='AppKernel'
APP_SECRET='$ecretf0rt3st'
SYMFONY_DEPRECATIONS_HELPER=999999
PANTHER_APP_ENV=panther
DATABASE_URL=postgresql://test:test@dbtest:5431/test?serverVersion=13&charset=utf8
The PHP container works fine for the others tests and pdo_pgsql
is installed inside my Dockerfile
.
My Makefile
looks like this :
DOCKER_COMPOSE = docker-compose
DOCKER_TEST = $(DOCKER_COMPOSE) -f docker-compose.test.yaml run --rm
.PHONY: test
test: ##@ Execute les tests
$(DOCKER_TEST) phptest bin/console doctrine:schema:validate --skip-sync --env=test
$(DOCKER_TEST) phptest bin/console doctrine:schema:update --force --env=test
When I tried to update the database schema I have this error :
An exception occurred in the driver: SQLSTATE[08006] [7] could not connect to server: Connection refused
Is the server running on host "dbtest" (192.168.208.2) and accepting TCP/IP connections on port 5431?
I tried to change the .env.test with 127.0.0.1
instead dbtest
too but same error.
I tried a loot of fix by different topics I found without success. Someone has an idea ?
Thanks by advance