Jenkins构建在除一个节点上的所有节点上均失败 构建docker映像时出现错误
Could not build image: The command '/bin/sh -c apk --no-cache update && apk --no-cache add python py-pip py-setuptools ca-certificates groff && pip --no-cache-dir install cfn-lint && pip --no-cache-dir install awscli==${AWS_CLI_VERSION}' returned a non-zero code: 4 -> [Help 1]
我的docker文件是
FROM openjdk:8-jre-alpine
# Versions: https://pypi.python.org/pypi/awscli#downloads
ENV AWS_CLI_VERSION 1.16.100
RUN apk --no-cache update && \
apk --no-cache add python py-pip py-setuptools ca-certificates groff && \
pip --no-cache-dir install cfn-lint && \
pip --no-cache-dir install awscli==${AWS_CLI_VERSION}
我该如何解决这个问题?
答案 0 :(得分:0)
刚刚测试过,它对我有用,因此可能与某些网络问题有关。我的建议是尝试将此RUN
命令分解为多个RUN
(或至少分为两个),以便找出哪个命令返回错误代码4
。
FROM openjdk:8-jre-alpine
# Versions: https://pypi.python.org/pypi/awscli#downloads
ENV AWS_CLI_VERSION 1.16.100
RUN apk --no-cache update && \
apk --no-cache add python py-pip py-setuptools ca-certificates groff
RUN pip --no-cache-dir install cfn-lint && \
pip --no-cache-dir install awscli==${AWS_CLI_VERSION}
由于apk
使用wget
除本地存储库外,apk实用程序还使用busybox wget通过http:,https:或ftp:协议获取软件包。以下是有效的存储库文件:
错误代码4
可能来自wget
,如果是这样,则表示是
网络故障。
因此,我的猜测是某些代理无法访问软件包下载位置。请检查您是否可以从这些代理访问http://dl-cdn.alpinelinux.org
。为此,请尝试在wget
进行的首次抓取中在Dockerfile
中运行apk
。
RUN wget http://dl-cdn.alpinelinux.org/alpine/v3.9/main/x86_64/APKINDEX.tar.gz
答案 1 :(得分:0)
我遇到了类似的问题,我不得不从〜/ .docker / config.json中删除无效的“代理”条目