Удаленное соединение postgres на сборке circleci для запуска тестов laravel phpunit

Мы используем 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" }}
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
0
0
260
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Хорошо, мне не хватало команды для копирования .env прямо под - checkout:

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

Laravel уже был настроен и настроен на его использование, поэтому мне не нужно было ничего менять.

Другие вопросы по теме