【发布时间】:2018-09-21 13:35:57
【问题描述】:
我们在我们的 api 生产环境中使用 laravel 5.6、postgresql 和 circleci,并且仍在尝试实现一些关键单元测试以在提交合并到 master 之前运行。
尝试在circle上配置远程postgresql数据库访问时,出现如下问题:
我们的 .circleci/config.yml 应该提取自定义构建的图像 (edunicastro/docker:latest) 并在“构建”步骤中运行 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" }}
【问题讨论】:
标签: laravel postgresql phpunit circleci