Я попытался подключить ваш отрывок .gitlab-ci.yml и получил ошибку:
This GitLab CI configuration is invalid: jobs config should contain at least one visible job
Пожалуйста, предоставьте минимальный воспроизводимый пример в следующий раз. ;)
Мне удалось воспроизвести и исправить проблему. Исправление должно было удалить настройку PGHOST
. (Вы установили значение postgres
. Ваш основной контейнер может попасть в контейнер postgis, используя псевдоним postgres
, но самому контейнеру postgis не требуется имя хоста для доступа к службе PostgreSQL, поскольку эта служба прослушивает в локальном сокете.)
PGHOST
используется psql
в контейнере "postgis" (запускается директивой services
), в скрипте https://github.com/postgis/docker-postgis/blob/master/initdb-postgis.sh ( который заканчивается в /docker-entrypoint-initdb.d/10_postgis.sh
- см. https://github.com/postgis/docker-postgis/blob/master/Dockerfile.template#L16)
Следующие .gitlab-ci.yml
работы:
image: node:lts-stretch
variables:
POSTGRES_DB: postgres
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
PGUSER: postgres
PGPASSWORD: postgres
services:
- name: postgis/postgis:latest
alias: postgres
job1:
script: ping -c 3 postgres
Вот журнал работы:
Running with gitlab-runner 12.9.0 (4c96e5ad)
on docker-auto-scale 0277ea0f
Preparing the "docker+machine" executor
Using Docker executor with image node:lts-stretch ...
Starting service postgis/postgis:latest ...
Pulling docker image postgis/postgis:latest ...
Using docker image sha256:a412dcb70af7acfbe875faea4467a1594e7cba3dfca19e5e1c6bcf35286380df for postgis/postgis:latest ...
Waiting for services to be up and running...
Pulling docker image node:lts-stretch ...
Using docker image sha256:88c089733a3b980b3517e8e2e8afa46b338f69d7562550cb3c2e9fd852a2fbac for node:lts-stretch ...
Preparing environment
00:05
Running on runner-0277ea0f-project-17971942-concurrent-0 via runner-0277ea0f-srm-1586221223-45d7ab06...
Getting source from Git repository
00:01
$ eval "$CI_PRE_CLONE_SCRIPT"
Fetching changes with git depth set to 50...
Initialized empty Git repository in /builds/atsaloli/service-postgis/.git/
Created fresh repository.
From https://gitlab.com/atsaloli/service-postgis
* [new ref] refs/pipelines/133464596 -> refs/pipelines/133464596
* [new branch] master -> origin/master
Checking out d20469e6 as master...
Skipping Git submodules setup
Restoring cache
00:02
Downloading artifacts
00:01
Running before_script and script
00:04
$ ping -c 3 postgres
PING postgres (172.17.0.3) 56(84) bytes of data.
64 bytes from postgis-postgis (172.17.0.3): icmp_seq=1 ttl=64 time=0.077 ms
64 bytes from postgis-postgis (172.17.0.3): icmp_seq=2 ttl=64 time=0.064 ms
64 bytes from postgis-postgis (172.17.0.3): icmp_seq=3 ttl=64 time=0.060 ms
--- postgres ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2062ms
rtt min/avg/max/mdev = 0.060/0.067/0.077/0.007 ms
Running after_script
00:01
Saving cache
00:02
Uploading artifacts for successful job
00:01
Job succeeded
Как видно из приведенной выше команды ping, контейнер, созданный из узла изображения: lts-stretch может получить доступ к контейнеру postgis с помощью псевдонима postgres.
Делает ли это разблокировать тебя?