我试图在我的M1 max MacBook上为我的java文件建立一个docker映像,我的dockerfile:
FROM openjdk:8-alpine
COPY . /src/java
WORKDIR /src/java
RUN ["javac","greenchallenge.java"]
ENTRYPOINT ["java","greenchallenge"]
构建映像的步骤:
- 创建了一个新的构建器:
docker buildx create --name pibuilder
(我想使用多架构特性) - 使用
docker buildx use pibuilder
初始化构建器。 - 构建图像并使用:
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