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

Mac M3 Pro构建的容器镜像在Jenkins K8s集群启动失败求助

解决思路

1. 排查Tini架构兼容性问题

你当前Dockerfile直接下载的Tini默认是AMD64架构二进制文件,如果Jenkins Kubernetes集群的节点是ARM/ARM64架构,会因为二进制不兼容导致系统识别不了该文件,进而报“no such file or directory”(这是架构不兼容时的典型报错,并非真的文件不存在)。

解决办法:

  • 方式一:通过apt安装适配架构的Tini:Ubuntu官方源已收录Tini,直接替换Dockerfile中的下载步骤,更可靠:
    # 替换原有的ADD和RUN chmod步骤
    RUN apt-get install -y --no-install-recommends tini
    
  • 方式二:根据架构下载对应Tini:在Dockerfile中动态判断当前架构,下载匹配的二进制:
    ENV TINI_VERSION v0.19.0
    RUN ARCH=$(dpkg --print-architecture) && \
        curl -Lo /sbin/tini https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini-${ARCH} && \
        chmod +x /sbin/tini
    

2. 验证镜像内Tini的存在性与权限

拉取集群使用的镜像artifactory.team/ssh-05ba8e,本地执行以下命令确认文件状态:

docker run --rm artifactory.team/ssh-05ba8e ls -l /sbin/tini

如果本地能看到文件,但集群中仍报错,尝试重新构建并推送镜像,排除镜像推送过程中的文件丢失问题。

3. 简化启动命令(临时替代方案)

如果不需要Tini的信号转发功能,可直接移除Tini相关配置,修改Pod YAML的启动命令:

command:
- sleep
args:
- infinity

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 02:22:42