Добрый день!
Есть конфигурация gitlab-ci, которая использует docker registry, который предоставлен самим gitlab
build:
stage: build
image: "$build_img"
artifacts:
paths:
- assembly/target
script:
- 'mvn clean package'
.test_template: &test_template
before_script:
- docker login -u "$CI_REGISTRY_USER" -p $CI_JOB_TOKEN $CI_REGISTRY
- docker build --pull -t "$CI_REGISTRY_IMAGE/$CI_PROJECT_NAME/$CI_JOB_NAME:$CI_COMMIT_REF_SLUG" .
- docker run --name "$CI_PROJECT_NAME"-db-"$CI_PIPELINE_ID"-"$CI_JOB_NAME" -d "$pgsql_img"
- docker run --name "$CI_PROJECT_NAME"-"$CI_PIPELINE_ID"-"$CI_JOB_NAME" --link "$CI_PROJECT_NAME"-db-"$CI_PIPELINE_ID"-"$CI_JOB_NAME":db -d "$CI_REGISTRY_IMAGE/$CI_PROJECT_NAME/$CI_JOB_NAME:$CI_COMMIT_REF_SLUG" java -jar main.jar
it_unit_test:
stage: test
image: "$build_img"
dependencies:
- build
services:
- name: "$pgsql_img"
alias: db
script:
- mvn test -P intTests
Конфигурация работает.
Я переписываю конфигурацию для использования nexus docker registry
build:
stage: build
image: "$build_img"
artifacts:
paths:
- assembly/target
script:
- 'mvn clean package -Dmaven.test.skip=true'
.test_template: &test_template
before_script:
- docker login -u login1111 -p password11111 docker-registry.11111.local:5000
- docker build --pull -t "$CI_PROJECT_NAME:$CI_COMMIT_TAG" .
- docker run --name "$CI_PROJECT_NAME"-db-"$CI_PIPELINE_ID"-"$CI_JOB_NAME" -d "$pgsql_img"
- docker run --name "$CI_PROJECT_NAME"-"$CI_PIPELINE_ID"-"$CI_JOB_NAME" --link "$CI_PROJECT_NAME"-db-"$CI_PIPELINE_ID"-"$CI_JOB_NAME":db -d "$CI_REGISTRY_IMAGE/$CI_PROJECT_NAME/$CI_JOB_NAME:$CI_COMMIT_REF_SLUG" java -jar main.jar
test_containers:
stage: test
<<: *test_template
script:
- TEST=`docker exec --tty "$CI_PROJECT_NAME"-"$CI_PIPELINE_ID"-"$CI_JOB_NAME" wget -qO /dev/stdout http://localhost:8088/monitoring/selftest`
- echo $TEST
- if [[ -z `echo $TEST | grep OK` ]]; then echo "Error - $TEST" && exit 254; else echo OK; exit 0; fi
it_unit_test:
stage: test
image: "$build_img"
dependencies:
- build
services:
- name: "$pgsql_img"
alias: db
script:
- mvn test -P intTests
Появляется ошибка
SEVERE: Connection error:
org.postgresql.util.PSQLException: The connection attempt failed.
После добавления echo и id в gitlab-ci.yml
echo pgsql_img $pgsql_img
pgsql_img docker-registry.XXXXXXXXXX:10443/postgres:9.6
$ id
uid=502(gitlab-runner) gid=501(gitlab-runner) groups=501(gitlab-runner),502(docker)
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
$ ping db
ping: db: Name or service not known
ERROR: Job failed: exit status 1
Я думаю, проблема в before_script
Как отладить before_script?
Я не вижу вывода before_script