1

私はこの gitlab-ci ファイルを持っています:

services:
  - docker:18.09.7-dind
variables:
  SONAR_TOKEN: "$PROJECT_SONAR_TOKEN"
  GIT_DEPTH: 0
  MAVEN_CLI_OPTS: "-s .m2/settings.xml --batch-mode"
  MAVEN_OPTS: "-Dmaven.repo.local=.m2/repository"

  DOCKER_HOST: "tcp://docker:2375"
  DOCKER_DRIVER: overlay2

sonarqube-check:
  image: maven:latest
  stage: test
  before_script:
    - "docker version"
    - "mkdir $PWD/.m2"
    - "cp -f /cache/settings.xml $PWD/.m2/settings.xml"
  script:
    - mvn $MAVEN_CLI_OPTS clean verify sonar:sonar -Dsonar.qualitygate.wait=true -Dsonar.login=$SONAR_TOKEN -Dsonar.projectKey="project-key"
  after_script:
    - "rm -rf $PWD/.m2"
  allow_failure: false
  only:
    - merge_requests

何らかの理由で、docker サービスの docker が docker のバイナリを見つけられません ( docker versionコマンドの 16 行目):

/bin/bash: line 111: docker: command not found

テストのために docker を実行する必要があるため、maven と docker バイナリの両方を含むイメージがある場合、または自分の独自の docker イメージ。

それはすべて1つの段階である必要があり、2つの段階に分割することはできません(または、少なくとも1つの段階でmavenでコンパイルし、別の段階でdockerイメージを使用してテストを実行する方法がわかりません)

ありがとうございました!

4

1 に答える 1