这是我的.gitlab-ci.yml文件的一部分
image: ruby:2.3.1
services:
- postgres:latest
- mysql:latest
...
variables:
MYSQL_RANDOM_ROOT_PASSWORD: "1"
...
所有postgres变量
被指定为GitLab安全变量。但是当管道运行时,我收到以下错误:
ActiveRecord::NoDatabaseError: FATAL: role "runner" does not exist
如果我通过.gitlab-ci.yml中的variables
部分设置这些变量,一切正常。
因此,通过GitLab安全变量设置的这些变量似乎没有正确设置,而postgres图像也不会使用它们。
我的目标是从.gitlab-ci.yml中的variables
部分删除postgres数据库名称,用户和密码。
请提前帮助,谢谢。
PS:我使用的是docker executor。
答案 0 :(得分:0)
我不是一个能够复活死线的人...但我自己花了几个小时来解决这个问题,并认为其他人可能会受益......事实证明这很简单。
Gitlab-CI不喜欢空白用户名,所以我必须明确设置它:
gitlab-ci.yml
services:
- postgres:latest
variables:
POSTGRES_DB: test
POSTGRES_USER: user
POSTGRES_PASSWORD: ""
配置/ database.yml的
test:
host: postgres
user: user
database: test