Если возможно, запустите команду Docker Compose перед исполняемым заданием в GitLab CI

# #docker #gitlab

Вопрос:

Я новичок в GitLabCI, похоже, что GitLab CI является докером везде.

Я пытался запустить Mariadb перед запуском тестов. В действиях Github это очень просто, просто docker-compose up -d командуйте перед моим mvn .

Когда пришел в GitLab CI.

Я пытался использовать следующее задание для архивирования цели.

 test:
  stage: test
  image: maven:3.6.3-openjdk-16
  services:
    - name: docker
  cache:
    key: "${CI_JOB_NAME}"
    paths:
      - .sonar/cache
      - .m2/repository
  script: |
    docker-compose up -d 
    sleep 10
    mvn clean verify sonar:sonar 
 

Но это не работает, docker-compose is not found .

Ответ №1:

Вы можете использовать docker-dind docker-dind и запускать команды docker внутри другого контейнера docker.

Но есть ограничение на запуск docker-compose по умолчанию. Рекомендуется создать пользовательский образ поверх DIND и поместить его в реестр образов gitlab. Так что это можно использовать на всех ваших рабочих местах