gitlab ciエラーはホスト名「postgres」をアドレスに変換できませんでした:名前が解決しません


8

私はRailsアプリでgitlab-ciを使用していますが、昨日まで正しく実行されましたが、次の理由でパスしません。

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の内部が変更されているようです。


djangoアプリでも同じ問題が発生します。間違いなく内部が変更されました。
Ojas Kale

回答:


9

編集:これは画像への意図的な変更でした。パスワードを設定するか、さらに設定する必要があります:

安全ではないことがわかっている場合(つまり、誰もがどこからでもパスワードなしで接続できる場合)、POSTGRES_HOST_AUTH_METHOD = trustがそれにオプトインする方法です。


これは、Dockerイメージが新しいリリースにアップグレードされたときに導入されたようです。

代わりに、この問題を回避するために、代わりに10.11イメージをプルすることができます。

services:
- postgres:10.11

なぜこれが起こっているのかはわかりませんが、最後のdocker image updateから同じことが発生しています。これは、12.1から12.2にも当てはまります。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.