基于前几篇文章的流程配置介绍,这里说一下遇到的问题。

步骤 1:登录 GitLab Runner 宿主机

# 切换到任意工作目录
cd ~

步骤 2:新建自定义 DinD 镜像构建文件 Dockerfile.dind-jdk17-mvn

vim Dockerfile.dind-jdk17-mvn

dockerfile

# 基于本地已有的docker:27-dind
FROM docker:27-dind

# 安装 OpenJDK17 + Maven
RUN apk update && apk add --no-cache openjdk17 maven

# 配置全局JAVA环境变量
ENV JAVA_HOME=/usr/lib/jvm/java-17-openjdk
ENV PATH=${JAVA_HOME}/bin:${PATH}

保存退出:esc → :wq

步骤 3:本地构建镜像(仅执行一次,后续永久复用)

docker build -t dind-jdk17-mvn:27 -f Dockerfile.dind-jdk17-mvn .

等待构建完成,执行查看镜像确认存在:

docker images | grep dind-jdk17-mvn
# 输出示例:dind-jdk17-mvn   27        xxxxxxxx   1.1GB

步骤 4:验证镜像内部 java、maven、docker 命令可用(可选校验)

docker run --rm dind-jdk17-mvn:27 sh -c "java -version && mvn -v && docker --version"

三条命令全部输出版本即镜像制作成功。

步骤 5:替换项目根目录 .gitlab-ci.yml 完整内容

删除原有 CI 文件全部内容,复制下面整套配置,无 artifacts、无 YAML 语法报错、自带 docker 命令。

我是空谷有来人,感谢支持!

更多推荐