You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于BuildKit的Maven Jenkins Agent镜像启动无限循环问题排查

问题根源

moby/buildkit属于极简镜像,没有预装Java运行环境,而Jenkins Agent的jenkins-agent脚本和agent.jar必须依赖Java才能运行。容器启动执行ENTRYPOINT时,找不到Java导致脚本执行失败,Docker会自动重启容器,形成无限循环。另外你当前的Dockerfile未将Maven相关环境复制到最终镜像中,即便解决Java问题,也无法使用Maven功能。

修复后的Dockerfile
# 阶段1:获取Jenkins Agent核心文件
FROM jenkins/inbound-agent:alpine as jnlp

# 阶段2:构建带依赖的Maven环境
FROM maven:3.6.3-jdk-11-slim as maven

RUN apt-get update && \
    apt-get install -y \
        git \
        libfontconfig1 \
        libfreetype6

# 阶段3:整合BuildKit、Maven和Jenkins Agent
FROM moby/buildkit

# 复制Java和Maven环境
COPY --from=maven /usr/lib/jvm/java-11-openjdk-amd64 /usr/lib/jvm/java-11-openjdk-amd64
COPY --from=maven /usr/share/maven /usr/share/maven
COPY --from=maven /usr/bin/mvn /usr/bin/mvn
COPY --from=maven /root/.m2 /root/.m2

# 复制系统依赖工具和库
COPY --from=maven /usr/bin/git /usr/bin/git
COPY --from=maven /usr/lib/x86_64-linux-gnu/libfontconfig.so.1 /usr/lib/x86_64-linux-gnu/libfontconfig.so.1
COPY --from=maven /usr/lib/x86_64-linux-gnu/libfreetype.so.6 /usr/lib/x86_64-linux-gnu/libfreetype.so.6

# 配置环境变量,确保Java和Maven可全局调用
ENV JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
ENV MAVEN_HOME=/usr/share/maven
ENV PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATH

# 复制Jenkins Agent文件
COPY --from=jnlp /usr/local/bin/jenkins-agent /usr/local/bin/jenkins-agent
COPY --from=jnlp /usr/share/jenkins/agent.jar /usr/share/jenkins/agent.jar

# 默认启动Jenkins Agent
ENTRYPOINT ["/usr/local/bin/jenkins-agent"]
可选:支持同时启动BuildKit服务

如果需要在同一个镜像中既可以作为Jenkins Agent,又能启动buildkitd服务,可以添加自定义启动脚本:

  1. 创建entrypoint.sh脚本:
#!/bin/sh
if [ "$1" = "buildkitd" ]; then
    exec /usr/bin/buildkitd
else
    exec /usr/local/bin/jenkins-agent "$@"
fi
  1. 修改Dockerfile的ENTRYPOINT部分:
COPY entrypoint.sh /usr/local/bin/entrypoint.sh
RUN chmod +x /usr/local/bin/entrypoint.sh
ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]

启动时,执行docker run [镜像名] buildkitd就能启动buildkit服务,默认则启动Jenkins Agent。

内容的提问来源于stack exchange,提问作者raboy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 00:21:23