错误:无法解决:无法获取 OAuth 令牌:"https://auth.docker.io/token" 后:拨号 TCP:I/O 超时



我试图在我的M1 max MacBook上为我的java文件建立一个docker映像,我的dockerfile:

FROM openjdk:8-alpine
COPY . /src/java
WORKDIR /src/java
RUN ["javac","greenchallenge.java"]
ENTRYPOINT ["java","greenchallenge"]

构建映像的步骤:

  1. 创建了一个新的构建器:docker buildx create --name pibuilder(我想使用多架构特性)
  2. 使用docker buildx use pibuilder初始化构建器。
  3. 构建图像并使用:
docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7 -t my_java:latest -t my_java:1.0.0 --push .

运行step3后,我得到了下面的日志:

[+] Building 47.2s (7/7) FINISHED                                               
=> [internal] booting buildkit                                           15.8s
=> => pulling image moby/buildkit:buildx-stable-1                        15.2s
=> => creating container buildx_buildkit_javabuildernew40                 0.6s
=> [internal] load build definition from dockerfile                       0.0s
=> => transferring dockerfile: 351B                                       0.0s
=> [internal] load .dockerignore                                          0.0s
=> => transferring context: 2B                                            0.0s
=> ERROR [linux/arm/v7 internal] load metadata for docker.io/library/op  31.3s
=> CANCELED [linux/amd64 internal] load metadata for docker.io/library/  31.3s
=> CANCELED [linux/arm64 internal] load metadata for docker.io/library/  31.3s
=> [auth] library/openjdk:pull token for registry-1.docker.io             0.0s
------
> [linux/arm/v7 internal] load metadata for docker.io/library/openjdk:8-alpine:
------
dockerfile:1
--------------------
1 | >>> FROM openjdk:8-alpine
2 |     COPY . /src/java
3 |     WORKDIR /src/java
--------------------
error: failed to solve: failed to fetch oauth token: Post "https://auth.docker.io/token": dial tcp: i/o timeout

注意:我用的是工作环境,我也绕过了代理。注意:如前所述,我在终端设置了"buildkit":false,使用了docker login

希望你能帮我解决这个错误,提前谢谢。

buildkit选项设置为false是不够的,如果您在代理后,您应该设置HTTP_PROXY和HTTPS_PROXY的env变量使其工作

(Windows),在CMD中:

set HTTP_PROXY=YourProxyUrl:Port
set HTTPS_PROXY=YourProxyUrl:Port

export HTTP_PROXY=YourProxyUrl:Port
export HTTPS_PROXY=YourProxyUrl:Port

最新更新