Мы используем laravel 5.6, postgresql и circleci в нашей производственной среде api и все еще пытаемся реализовать некоторые ключевые модульные тесты для запуска до того, как фиксация будет объединена с мастером.
При попытке настроить удаленный доступ к базе данных postgresql по кругу возникает следующая проблема:
Наш .circleci / config.yml должен был получить созданный пользователем образ (edunicastro / docker: последний) и запустить тесты phpunit на этапе «сборки».
Но мы получаем следующее сообщение об ошибке:
PDOException: 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?
Проблема в том, что это должно было подключаться к нашей удаленной базе данных, но в нашей производственной среде у нас есть соединение, настроенное с использованием .env и laravel.
Я попытался скопировать ключ «DB_PGSQL_HOST» в наш config.yml, но ничего не изменилось, он продолжал пытаться подключиться к 127.0.0.1.
Использование вместо этого ключа PGHOST также не дало результата.
Это соответствующая «строительная» часть нашего config.yml:
version: 2
jobs:
build:
docker:
- image: edunicastro/docker:latest
environment:
DB_PGSQL_CONNECTION: <prod_laravel_connection_name>
DB_PGSQL_HOST: <prod_db_host>
DB_PGSQL_PORT: 5432
DB_PGSQL_DATABASE: <prod_db_name>
working_directory: ~/repo
steps:
- checkout
- restore_cache:
keys:
- v1-dependencies-{{ checksum "composer.json" }}
- v1-dependencies-
- run: composer install -n --prefer-dist
- run: ./vendor/bin/phpunit
- save_cache:
paths:
- ./vendor
key: v1-dependencies-{{ checksum "composer.json" }}






Хорошо, мне не хватало команды для копирования .env прямо под - checkout:
- checkout
- run: cp .env.test .env
Laravel уже был настроен и настроен на его использование, поэтому мне не нужно было ничего менять.