Gitlab-ci docker inside java image

Gitlab-ci docker inside java image

要使用集成测试库 https://www.testcontainers.org/" 我需要同时安装 java 和 docker 的图像。

我正在尝试使用这个阶段:

test:
  stage: test
  image: gradle:jdk16
  services:
    - docker:latest
  script:
    - docker --version
    - chmod +x ./gradlew
    - export GRADLE_USER_HOME=`pwd`/.gradle
    - ./gradlew test  --stacktrace
  rules:
    - !reference [.rules_merge_request, rules]

但是不起作用:

$ docker --version
/scripts-33119345-2089057982/step_script: line 154: docker: command not found

有什么帮助吗?

图像 gradle:jdk16 不包含 docker 客户端。你必须在你的工作中安装它。此外,您需要在 services: 配置中使用服务 docker:dind(而非 docker:latest

test:
  stage: test
  image: gradle:jdk16
  services:
    - docker:dind # use the docker-in-docker image
  before_script: # install docker
    - apt update && apt install --no-install-recommends -y docker.io  
  script:
    - docker --version

运行 在 gitlab.com 个跑步者上,你应该看到这样的输出: