У меня есть проект Symfony со следующим .gitlab-ci.yml
файлом:
test:
image: registry.gitlab.com/MYIMAGEURL:latest
variables:
# POSTGRES - Use the values from the .env.test file.
POSTGRES_DB: db
POSTGRES_USER: postgres
POSTGRES_PASSWORD: asdfasdf
# MISC
APP_ENV: test
services:
- name: postgres:10
# "postgresql" is what we use in the .env.test file
alias: postgresql
before_script:
- cd my-project
script:
- cp .env.test .env
- composer install
Сбой Symfony cache:clear --env=test
, когда доктрина пытается установить соединение:
SQLSTATE[08006] [7] could not connect to server: Connection refused
Is the server running on host "localhost" (127.0.0.1) and accepting
TCP/IP connections on port 5432?
could not connect to server: Address not available
Is the server running on host "localhost" (::1) and accepting
TCP/IP connections on port 5432?
My .envФайл .test имеет следующий URL:
DATABASE_URL=pgsql://postgres:asdfasdf@postgresql:5432/db
Итак, я знаю, что он должен искать хост postgresql
.
Я также подтвердил конфигурацию доктрины, используя php bin/console debug:config doctrine
, иопределенный URL-адрес подключения по умолчанию: url: '%env(resolve:DATABASE_URL)%'
.Я также установил и подтвердил, что команда cache:clear
выполняется в среде test
.Почему resolve:DATABASE_URL
разрешается на localhost?
Я не знаю, что еще попробовать.Он всегда подключается к localhost
, а не postgresql
.Что еще мне следует попробовать?
РЕДАКТИРОВАТЬ: Кроме того, я следовал руководству по локальному тестированию задания , используя ручные сервисные ссылки, и все работает нормально.