Ich benutze gitlab-ci in meiner Rails-App, es lief bis gestern korrekt, aber es geht nicht vorbei aufgrund von:
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
Es scheint, dass der Postgres-Dienst nicht ausgeführt werden kann oder aus irgendeinem Grund der Datenbankdienst nicht ordnungsgemäß ausgeführt wird. Ich denke, einige Interna haben sich in gitlab-ci geändert.
ruby-on-rails
gitlab-ci
gitlab-ci-runner
Alireza Mohagheghi
quelle
quelle
Antworten:
BEARBEITEN: Dies war eine beabsichtigte Änderung an den Bildern. Sie müssen jetzt ein Passwort festlegen oder weiter konfigurieren:
Dies scheint eingeführt worden zu sein, als die Docker-Images auf die neuen Versionen aktualisiert wurden .
Sie können stattdessen das 10.11-Bild ziehen, um dieses Problem vorerst zu vermeiden:
Ich bin mir nicht sicher, warum dies geschieht, aber wir erleben dasselbe seit dem letzten Docker-Image-Update . Ich habe festgestellt, dass dies auch von 12.1 bis 12.2 der Fall ist.
quelle
postgres hat zwei erforderliche Umgebungsvariablennamen,
POSTGRES_USER
undPOSTGRES_PASSWORD
wenn Sie diese nicht angeben, wird der Container nicht ausgeführt.gitlab-ci Dokumentation zu Diensten
quelle