【问题标题】:Remote postgres connection on circleci build to run laravel phpunit testscircleci 构建上的远程 postgres 连接以运行 laravel phpunit 测试
【发布时间】: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


    【解决方案1】:

    好的,我错过了复制 .env 的命令,就在 - checkout 下方:

    - checkout
          - run: cp .env.test .env
    

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

    【讨论】:

      猜你喜欢
      • 2019-01-07
      • 2017-03-25
      • 2017-10-19
      • 2014-08-28
      • 2019-01-23
      • 2014-04-30
      • 2015-10-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多