docker - Docker 构建:无法为 openjdk 获取 oauth 令牌?
问题描述
尝试在 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'
这个错误到底是什么意思?我缺少权限吗?
作为参考,这是我的 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
解决方案
看起来您在 docker 配置中启用了 buildkit。Buildkit 还不稳定,可能会导致这些类型的问题。请在禁用 buildkit 的情况下重试。
在 Linux 中,使用环境变量:
export DOCKER_BUILDKIT=0
export COMPOSE_DOCKER_CLI_BUILD=0
在 Windows 和 macOS 中,启动 Docker 桌面应用程序,转到Settings,选择 Docker Engine并查找现有条目:
"buildkit": true
更改此条目以禁用 buildkit:
"buildkit": false
然后单击应用并重新启动并重试。
推荐阅读
- java - jNetPcap PcapDumper 将捕获的数据包附加到文件
- ios - 在 iOS 中以编程方式调整容器视图的视图控制器的大小
- sqlite - 如何在 FireFox 中添加 SQLite 管理
- .htaccess - htaccess 重定向到文件夹,忽略子域
- php - 如何以第一种形式插入数据并以第二种形式更新相同的数据,依此类推
- git - 我的终端中的 Git 分支和远程与我在 github 中看到的不同
- reactjs - redux action creator 中的多个 fetch 请求
- python - PySpark ML:LinearSVC 的 OnevsRest 策略
- html - CSS 图像适用于 Chrome 上的 Brackets Live 视图,但不适用于其他浏览器
- vagrant - Vagrant 中 salt-minion 的配置