С Gitlab вы можете использовать докер-бегун .
Когда вы используете docker-runner, а не оболочку, должен запускаться образ, подобный docker, и его службы, он должен выдавать ошибку в случае сбоя.
Chek это документы от gitlab :
Это классический yml
из этой сети:
default:
image:
name: ruby:2.2
entrypoint: ["/bin/bash"]
services:
- name: my-postgres:9.4
alias: db-postgres
entrypoint: ["/usr/local/bin/db-postgres"]
command: ["start"]
before_script:
- bundle install
test:
script:
- bundle exec rake spec
Как видите, тестовые разделы будутвыполняется после построения изображения, так что вам не о чем беспокоиться. Gitlab должен обнаруживать любые ошибки при загрузке изображения.
Если вы делаете это с оболочкой gitlab-runner , вы должны вызвать запуск образа докера следующим образомэто:
stages:
- dockerStartup
- build
- test
- deploy
- dockerStop
job 0:
stage: dockerStartup
script:
- docker build -t my-docker-image .
- docker run my-docker-image /script/to/run/tests
[...] //your jobs here
job 5:
stage: dockerStop
script: docker stop whatever