使用docker buildx时证书错误



我在使用docker buildx构建armv7 docker映像时遇到了一个非常奇怪的问题,但在armv7硬件上本地构建时却没有。

这是一个非常简单的docker图像:

FROM ubuntu:20.04
ARG ARCH
RUN apt-get update && 
apt-get install -y curl wget
# Install Go
ENV GOLANG_VERSION 1.15.8
RUN set -eux; 

url="https://golang.org/dl/go${GOLANG_VERSION}.linux-${ARCH}.tar.gz"; 
wget -O go.tgz "$url"; 
tar -C /usr/local -xzf go.tgz; 
rm go.tgz; 
export PATH="/usr/local/go/bin:$PATH"; 
go version

我可以在macos和raspberrypi上构建arm64的映像。在为armv7构建它时没有这样的运气。

我正在使用buildx在macos上构建映像,如下所示:

docker buildx build --platform linux/arm/v7 -t test:armv7 --build-arg ARCH=armv6l .

连接到golang.org时出现证书错误失败:

#7 0.378 Resolving golang.org (golang.org)... 142.250.185.113, 2a00:1450:4001:80f::2011
#7 0.448 Connecting to golang.org (golang.org)|142.250.185.113|:443... connected.
#7 0.682 ERROR: cannot verify golang.org's certificate, issued by 'CN=GTS CA 1O1,O=Google Trust Services,C=US':
#7 0.682   Unable to locally verify the issuer's authority.
#7 0.688 To connect to golang.org insecurely, use `--no-check-certificate'.

但是,如果我在armv7 (raspberry pi 2b)上本地构建完全相同的映像,它就可以正常工作:

docker build -t test:armv7 --build-arg ARCH=armv6l .

不用说,我很困惑为什么一个能工作,而另一个不能。

添加到wget命令不检查ssl证书的-k参数

为你

FROM ubuntu:20.04
ARG ARCH
RUN apt-get update && 
apt-get install -y curl wget
# Install Go
ENV GOLANG_VERSION 1.15.8
RUN set -eux; 

url="https://golang.org/dl/go${GOLANG_VERSION}.linux-${ARCH}.tar.gz"; 
wget -k -O go.tgz "$url"; 
tar -C /usr/local -xzf go.tgz; 
rm go.tgz; 
export PATH="/usr/local/go/bin:$PATH"; 
go version

最好的方法是安装证书包。在apt-get install -y curl wget ca-certificates

中执行此操作

相关内容

  • 没有找到相关文章

最新更新