我在我的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中的某些内部组件已更改。
编辑:这是对图像的有意更改,您现在必须设置密码或进一步配置:
如果您知道自己不安全(即,任何人都可以在没有密码的情况下从任何地方进行连接),则选择POSTGRES_HOST_AUTH_METHOD = trust。
当docker镜像升级到新版本时,似乎已经引入了这一点。
您可以拉拉10.11图像来暂时避免此问题:
services:
- postgres:10.11
不知道为什么会这样,但是自从上次docker image更新以来,我们正在经历同样的事情。我发现从12.1到12.2也是如此。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句