在使用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上为arm64构建镜像,也可以在raspberrypi上构建镜像。在为armv7 tho构建它时就没有这样的运气了。
我在macos上使用buildx构建镜像,如下所示:
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 .不用说,我非常困惑为什么一个可以工作,而另一个不能。
发布于 2021-02-07 01:49:02
add to 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中执行此操作
https://stackoverflow.com/questions/66079909
复制相似问题