A
A
Anton2018-09-08 13:26:46
Continuous Integration
Anton, 2018-09-08 13:26:46

How to debug before_script in gitlab-ci?

Good afternoon!
There is a gitlab-ci config that uses a docker registry which is provided by gitlab itself

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

The configuration is working.
I am rewriting the config to use 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.

After adding echo and id to 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

I think the problem is in before_script
How to debug before_script?
I don't see before_script output

Answer the question

In order to leave comments, you need to log in

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question