1

這是我.gitlab-ci.yml文件的一部分GitLab CI:如何設置Postgres的圖像使用GitLab安全變量

image: ruby:2.3.1 

services: 
    - postgres:latest 
    - mysql:latest 
... 
variables: 
    MYSQL_RANDOM_ROOT_PASSWORD: "1" 
... 

所有Postgres的變量

  • POSTGRES_DB
  • POSTGRES_USER
  • POSTGRES_PASSWORD

被指定爲GitLab安全變量。但是,當管道運行出現以下錯誤:

ActiveRecord::NoDatabaseError: FATAL: role "runner" does not exist 

如果我通過.gitlab-ci.yml一切variables部分設置這些變量工作得很好。

所以看起來像這些變量通過GitLab設置安全變量時設置不正確,postgres圖像不使用它們。

我的目標是從.gitlab-ci.yml中的variables部分刪除postgres db名稱,用戶名和密碼。

請幫助,在此先感謝。 PS:我使用docker執行程序。

回答

0

我不是一個能夠恢復死亡線程的人......但我自己在這個問題上花了幾個小時,並且認爲其他人可能會受益......結果很簡單。

Gitlab-CI不喜歡一個空白的用戶名,所以我必須明確地設置:

gitlab-ci.yml

services: 
    - postgres:latest 

variables: 
    POSTGRES_DB: test 
    POSTGRES_USER: user 
    POSTGRES_PASSWORD: "" 

config/database.yml

test: 
    host: postgres 
    user: user 
    database: test