Как я могу получить доступ к postgres.conf контейнера postgres на gitlab-ci? - PullRequest
0 голосов
/ 07 марта 2019

В Gitlab-CI я настроил службу postgres для своей базы данных и хотел бы проверить ее конфигурационный файл. Для этого я позволю postgres вернуть расположение файла конфигурации, но когда я перехожу в этот каталог, он пуст. Как я могу получить к нему доступ?

.gitlab-ci.yaml:

image: maven:3.5.3-jdk-8

services:
  - postgres

variables:
  POSTGRES_DB: custom_db
  POSTGRES_USER: custom_user
  POSTGRES_PASSWORD: custom_pass

connect:
  image: postgres
  script:
  - export PGPASSWORD=$POSTGRES_PASSWORD
  - psql -h "postgres" -U "$POSTGRES_USER" -d "$POSTGRES_DB" -c "SELECT 'OK' AS status;"
  - psql -h "postgres" -U "$POSTGRES_USER" -d "$POSTGRES_DB"  -c "SHOW config_file;"
  - cd  /var/lib/postgresql/data
  - dir
  - ls -a
  - cat postgresql.conf

Соответствующий вывод задания:

Running with gitlab-runner 11.8.0 (4745a6f3)
  on docker-auto-scale 72989761
Using Docker executor with image postgres ...
Starting service postgres:latest ...
Pulling docker image postgres:latest ...
Using docker image sha256:30bf4f039abe0affe9fe4f07a13b00ea959299510626d650c719fb10c4f41470 for postgres:latest ...
Waiting for services to be up and running...
Pulling docker image postgres ...
Using docker image sha256:30bf4f039abe0affe9fe4f07a13b00ea959299510626d650c719fb10c4f41470 for postgres ...
Running on runner-72989761-project-7829066-concurrent-0 via runner-72989761-srm-1551974294-08e28deb...
Cloning repository...
Cloning into '/builds/kimtang/SpringBootTimeWithSwagger'...
Checking out 1399a232 as master...
Skipping Git submodules setup
$ export PGPASSWORD=$POSTGRES_PASSWORD
$ psql -h "postgres" -U "$POSTGRES_USER" -d "$POSTGRES_DB" -c "SELECT 'OK' AS status;"
 status 
--------
 OK
(1 row)

$ psql -h "postgres" -U "$POSTGRES_USER" -d "$POSTGRES_DB"  -c "SHOW config_file;"
               config_file                
------------------------------------------
 /var/lib/postgresql/data/postgresql.conf
(1 row)

$ cd  /var/lib/postgresql/data
$ dir
$ ls -a
.
..
$ cat postgresql.conf
cat: postgresql.conf: No such file or directory
ERROR: Job failed: exit code 1

Почему говорится, что он находится в / var / lib / postgresql / data, но не может быть найден?

1 Ответ

1 голос
/ 07 марта 2019

Вы подключены к удаленному экземпляру докера через psql и проверяете локальный каталог.Если вы действительно хотите проверить, что происходит в образе службы Docker, тогда перейдите по ssh в рабочий и затем введите команду docker exec -i -t <container_name> /bin/sh для входа в контейнер.Вам придется долго выполнять работу, поэтому добавьте туда sleep.

...