Circleci构建上的远程Postgres连接以运行laravel phpunit测试

时间:2018-09-21 13:35:57

标签: laravel postgresql phpunit circleci

我们在api生产环境中使用了laravel 5.6,postgresql和circleci,并且仍在尝试实现一些关键的单元测试,以在提交合并到master之前运行。

尝试在圆上配置远程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" }}

1 个答案:

答案 0 :(得分:0)

好的,我丢失了将.env复制到songcollection下的命令:

- checkout

Laravel已经配置并设置为可以使用,因此我不需要更改其他任何内容。