自定义 dind+jdk17+maven 本地镜像,彻底解决 docker 命令不存在 + 413 上传过大
·
基于前几篇文章的流程配置介绍,这里说一下遇到的问题。
步骤 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 命令。
我是空谷有来人,感谢支持!
更多推荐

所有评论(0)