1

Dies ist ein Teil meiner .gitlab-ci.yml DateiGitlab CI: Wie Bild Setup Postgres mit Gitlab sicheren Variablen

image: ruby:2.3.1 

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

Alle Postgres Variablen

  • POSTGRES_DB
  • POSTGRES_USER
  • POSTGRES_PASSWORD

werden als sichere GitLab-Variablen angegeben. Aber wenn die Pipeline läuft ich die folgende Fehlermeldung erhalten:

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

Wenn ich diese Variablen durch variables Abschnitt in .gitlab-ci.yml alles gesetzt funktioniert gut.

So scheint es, als ob diese Variablen, wenn sie durch GitLab sichere Variablen gesetzt sind, nicht richtig eingestellt sind und postgres image sie nicht benutzt.

Mein Ziel ist, postgres db Name, Benutzer und Passwort von variables Abschnitt in .gitlab-ci.yml zu entfernen.

Bitte helfen, danke im Voraus.

PS: Ich benutze Docker Executor.

Antwort

0

Ich bin nicht einer, um tote Fäden wiederzubeleben ... aber ich verbrachte ein paar Stunden in diesem Thema selbst und stelle fest, dass jemand anderes davon profitieren könnte ... Es stellte sich heraus, dass es einfach war.

Gitlab-CI nicht wie einen leeren Benutzernamen, also musste ich es explizit setzen:

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