A
A
Anton2018-09-06 10:34:18
GitLab
Anton, 2018-09-06 10:34:18

Why can't the service find the database or how does the service know where to connect to in gitlab-ci using docker?

Good afternoon!
There is a gitlab-ci configuration that uses the 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

He works. I'm redoing it on the 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 ; 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

An error
SEVERE: Connection error: 
org.postgresql.util.PSQLException: The connection attempt failed.

Why can't it connect to the database?
How to debug it?

Answer the question

In order to leave comments, you need to log in

1 answer(s)
H
Hikmat Abdunabiev, 2018-09-06
@Khikmat

Where do you declare these $build_img and $pgsql_img variables?

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question