gitlab ci error Не удалось преобразовать имя хоста "postgres" в адрес: имя не разрешается - PullRequest
8 голосов
/ 15 февраля 2020

Я использую gitlab-ci в своем приложении rails, до вчерашнего дня он работал правильно, но не проходит из-за:

rake aborted!
PG::ConnectionBad: could not translate host name "postgres" to address: Name does not resolve
/usr/local/bundle/gems/pg-1.1.4/lib/pg.rb:56:in `initialize'
/usr/local/bundle/gems/pg-1.1.4/lib/pg.rb:56:in `new'
/usr/local/bundle/gems/pg-1.1.4/lib/pg.rb:56:in `connect'
....
Tasks: TOP => db:schema:load => db:check_protected_environments

.gitlab-ci.yml:

rspec:
  stage: test
  services:
    - postgres:10
  variables:
    DATABASE_URL: "postgresql://postgres:postgres@postgres:5432/$POSTGRES_DB"
    POSTGRES_DB: db_test
    RAILS_ENV: test
  before_script:
    - ruby -v
  script:
    - cp config/application.sample.yml config/application.yml
    - cp config/database.sample.yml config/database.yml
    - bundle exec rake db:schema:load
    - bundle exec rspec spec

Кажется, он не может найти работающую службу postgres или по какой-то причине служба базы данных работает неправильно, я думаю, что некоторые внутренние компоненты изменились в gitlab-ci.

Ответы [ 2 ]

9 голосов
/ 15 февраля 2020

РЕДАКТИРОВАТЬ: это было намеренное изменение изображений, теперь вы должны установить пароль или настроить далее:

Если вы знаете, что вы хотите быть небезопасным (то есть любой может подключиться без пароля из любого места), затем POSTGRES_HOST_AUTH_METHOD = trust - это то, как вы выбираете это.


Это, как представляется, было введено, когда изображения docker были обновлены до новые выпуски .

Вместо этого вы можете получить изображение 10.11, чтобы на время избежать этой проблемы:

services:
- postgres:10.11

Не уверены, почему это происходит, но мы то же самое происходит после последнего обновления образа . Я обнаружил, что это также имеет место с 12,1 до 12,2.

3 голосов
/ 15 февраля 2020

postgres имеет две обязательные переменные среды: имена POSTGRES_USER и POSTGRES_PASSWORD, если вы их не предоставите, контейнер не запустится.

gitlab-ci документация об услугах

...