Eu uso o gitlab-ci no meu aplicativo rails, ele correu corretamente até ontem, mas não passa devido a:
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
Parece que não é possível encontrar o serviço do postgres em execução ou, por algum motivo, o serviço de banco de dados não está funcionando corretamente, acho que alguns internos foram alterados no gitlab-ci.
ruby-on-rails
gitlab-ci
gitlab-ci-runner
Alireza mohagheghi
fonte
fonte
Respostas:
EDIT: Esta foi uma alteração pretendida para as imagens, agora você deve definir uma senha ou configurar mais:
Isso parece ter sido introduzido quando as imagens do docker foram atualizadas para as novas versões .
Você pode extrair a imagem 10.11 para evitar esse problema por enquanto:
Não sabemos por que isso está acontecendo, mas estamos enfrentando o mesmo desde a última atualização da imagem do Docker . Eu descobri que esse também é o caso passando de 12.1 para 12.2.
fonte
O postgres possui dois nomes de variáveis de ambiente necessários
POSTGRES_USER
e,POSTGRES_PASSWORD
se você não fornecer o contêiner, não será executado.documentação do gitlab-ci sobre serviços
fonte