meg*_*sat 5 java linux docker dockerfile docker-compose
我正在尝试为我的 M1 max MacBook 上的 java 文件构建一个 docker 映像,我的 dockerfile:
FROM openjdk:13
COPY . /src/java
WORKDIR /src/java
RUN ["javac","greenchallenge.java"]
ENTRYPOINT ["java","greenchallenge"]
Run Code Online (Sandbox Code Playgroud)
构建镜像的步骤如下:
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 .
Run Code Online (Sandbox Code Playgroud)
运行步骤 3后,我得到以下日志:
[+] Building 19.7s (6/6) FINISHED
=> [internal] booting buildkit 18.6s
=> => pulling image moby/buildkit:buildx-stable-1 18.1s
=> => creating container buildx_buildkit_pibuilder0 0.6s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 2B 0.0s
=> [internal] load build definition from dockerfile 0.0s
=> => transferring dockerfile: 493B 0.0s
=> ERROR [linux/arm64 internal] load metadata for docker.io/library/open 1.0s
=> CANCELED [linux/arm/v7 internal] load metadata for docker.io/library/ 1.0s
=> ERROR [linux/amd64 internal] load metadata for docker.io/library/open 1.0s
------
> [linux/arm64 internal] load metadata for docker.io/library/openjdk:13:
------
------
> [linux/amd64 internal] load metadata for docker.io/library/openjdk:13:
------
dockerfile:1
--------------------
1 | >>> FROM openjdk:13
2 | COPY . /src/java
3 | WORKDIR /src/java
--------------------
error: failed to solve: openjdk:13: failed to do request: Head "https://registry-1.docker.io/v2/library/openjdk/manifests/13": x509: certificate signed by unknown authority
Run Code Online (Sandbox Code Playgroud)
重定向到上面提供的 url"https://registry-1.docker.io/v2/library/openjdk/manifests/13"会显示以下消息:
{"errors":[{"code":"UNAUTHORIZED","message":"authentication required","detail":[{"Type":"repository","Class":"","Name":"library/openjdk","Action":"pull"}]}]}
Run Code Online (Sandbox Code Playgroud)
注意:我正在使用工作环境。
希望您能帮助我解决该错误,提前致谢。
小智 2
这已经晚了几个月了,我想你已经弄清楚了,但为了其他有同样问题的人,我将分享对我有用的方法。
我做的第一件事是检查图像的容器名称buildkit:build-stable-1,因为这是自动为我生成的:
docker ps
Run Code Online (Sandbox Code Playgroud)
接下来,停止容器:
docker stop buildx_buildkit_trusting_moore0
Run Code Online (Sandbox Code Playgroud)
最后,移除容器:
docker rm buildx_buildkit_trusting_moore0
Run Code Online (Sandbox Code Playgroud)
之后,我开始了构建过程。我确实遇到过这个问题几次,但停止并删除容器总是有效。我对 docker 比较陌生,所以我不确定为什么会发生这种情况,但我希望这对某人有帮助。
| 归档时间: |
|
| 查看次数: |
3684 次 |
| 最近记录: |