Docker构建镜像时akamai install purge失败,容器内执行正常
解决Docker构建时Akamai CLI安装purge包失败的问题
你遇到的问题核心是32位的Akamai CLI二进制在amd64架构的Ubuntu镜像中运行时缺少必要的依赖,导致构建时akamai install purge命令执行异常,错误被CLI捕获后显示为“包不可用”;而进入容器后,环境可能自动修复了依赖(比如交互式场景下的隐式依赖安装),因此命令能正常执行。
方案1:添加32位架构支持与运行依赖
修改Dockerfile,先启用i386架构并安装32位程序所需的基础依赖,确保Akamai CLI能稳定运行:
FROM ubuntu:20.04 # 启用i386架构并安装32位运行依赖 RUN dpkg --add-architecture i386 && \ apt-get update && \ apt-get install -y --no-install-recommends \ libc6-i386 \ lib32gcc1 \ lib32z1 \ wget && \ rm -rf /var/lib/apt/lists/* # 安装Go(若后续无需Go环境可直接移除该段) RUN wget https://dl.google.com/go/go1.21.0.linux-amd64.tar.gz && \ tar -C /usr/local -xzf go1.21.0.linux-amd64.tar.gz && \ export PATH=$PATH:/usr/local/go/bin && \ go version && \ rm go1.21.0.linux-amd64.tar.gz # 配置Akamai CLI COPY akamai-v1.5.6-linux386 . RUN chmod +x akamai-v1.5.6-linux386 && \ mv akamai-v1.5.6-linux386 /usr/local/bin/akamai # 刷新包索引并安装purge包 RUN akamai list && \ akamai install purge -y EXPOSE 22 CMD ["/usr/sbin/sshd", "-D"]
方案2:改用amd64版本的Akamai CLI
如果不需要32位版本,直接下载对应amd64架构的Akamai CLI二进制文件,从根源避免架构兼容问题:
FROM ubuntu:20.04 RUN apt-get update && \ apt-get install -y --no-install-recommends wget && \ rm -rf /var/lib/apt/lists/* # 下载amd64版本的Akamai CLI RUN wget https://github.com/akamai/cli/releases/download/v1.5.6/akamai-v1.5.6-linuxamd64 && \ chmod +x akamai-v1.5.6-linuxamd64 && \ mv akamai-v1.5.6-linuxamd64 /usr/local/bin/akamai RUN akamai install purge -y EXPOSE 22 CMD ["/usr/sbin/sshd", "-D"]
额外优化建议
- 合并重复的
apt-get update命令,减少镜像层数与构建时间 - 添加
rm -rf /var/lib/apt/lists/*清理apt缓存,缩小镜像体积 - 若无需Go环境,直接移除Go安装步骤,进一步简化镜像内容
内容的提问来源于stack exchange,提问作者Hari
相关产品推荐
相关产品推荐

