Kes*_*oco 17 docker dockerfile
尝试在 Docker 中构建项目时,我无法理解此错误:
> [internal] load metadata for docker.io/library/openjdk:11:
------
failed to solve with frontend dockerfile.v0: failed to create LLB definition: failed to authorize: rpc error: code = Unknown desc = failed to fetch oauth token: unexpected status: 401 Unauthorized'
Run Code Online (Sandbox Code Playgroud)
这个错误究竟是什么意思?我缺少权限吗?
作为参考,这就是我的 Dockerfile 的样子:
### base jdk image ###
FROM openjdk:11 as setup
ENV USER sc_user
ENV HOME /home/$USER
ENV REPO $HOME/sc
RUN useradd -u 9999 $USER
COPY --chown=$USER build.gradle gradlew $REPO/
COPY --chown=$USER gradle $REPO/gradle
USER $USER
WORKDIR $REPO
RUN ./gradlew
FROM setup as tdd
ENTRYPOINT ["./gradlew", "-t", "test"]
FROM setup as debug-tdd
ENTRYPOINT ["./gradlew", "-t", "test", "-PjvmArgs=-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=*:5005"]
### build jar ###
FROM setup as build
COPY --chown=$USER src $REPO/src
RUN ./gradlew clean test build generatePomFileForMavenJavaPublication
Run Code Online (Sandbox Code Playgroud)
Mar*_*lon 50
看起来您在 docker 配置中启用了 buildkit。Buildkit 还不稳定,可能会导致这些类型的问题。请在禁用 buildkit 的情况下重试。
在 Linux 中,使用环境变量:
export DOCKER_BUILDKIT=0
export COMPOSE_DOCKER_CLI_BUILD=0
Run Code Online (Sandbox Code Playgroud)
在 Windows 和 macOS 中,启动 Docker 桌面应用程序,转到Settings,选择 Docker Engine并查找现有条目:
"buildkit": true
Run Code Online (Sandbox Code Playgroud)
更改此条目以禁用 buildkit:
"buildkit": false
Run Code Online (Sandbox Code Playgroud)
然后单击“应用并重新启动”并重试。
小智 35
在我的 Mac 上更新到新的 Docker 版本后,我也遇到了这个问题。不过,我从终端再次登录后解决了这个问题。
命令是:
docker login
Run Code Online (Sandbox Code Playgroud)
之后我必须提供Docker Hub 的用户名和密码。问题已解决。
请注意,如果您使用自定义注册表,则必须改为运行docker login <registry>。
如果您在 2021 年 8 月 31 日订阅更改为 docker 后遇到此问题,则意味着您需要登录 docker hub 才能执行操作。
从 docker 桌面应用程序使用 docker login 或从终端使用 docker login 命令。
如果您之前尚未创建 docker 帐户,则可以在此处注册个人(免费)计划 - https://hub.docker.com/或使用您的组织为您提供的 docker 帐户(如果您有的话) 。
这里提到了对订阅的更改 - https://docs.docker.com/subscription/
| 归档时间: |
|
| 查看次数: |
11302 次 |
| 最近记录: |