chemtech
@chemtech
Линуксойд, DevOps

Почему сервис не может найти БД или как сервис узнает куда подключатся в gitlab-ci используя docker?

Добрый день!
Есть конфигурация gitlab-ci, которая использует gitlab-ci registry
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.


Почему не может подлючится к БД?
Как это отлаживать?
  • Вопрос задан
  • 98 просмотров
Пригласить эксперта
Ответы на вопрос 1
А где Вы объявляете вот эти $build_img и $pgsql_img переменные?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы