Docker在build时候时候一直报错:DeadlineExceeded: DeadlineExceeded: failed to fetch oauth token: Post "https://auth.docker.io/token": dial tcp 205.186.152.122:443: i/o timeout
[+] Building 30.1s (6/6) FINISHED
=> [internal] load build definition from Dockerfile 0.0s
=> => transferring dockerfile: 1.11kB 0.0s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 199B 0.0s
=> ERROR [internal] load metadata for docker.io/library/nginx:1.20.2-alpine 30.0s
=> CANCELED [internal] load metadata for docker.io/library/node:16.13.1-alpine 30.0s
=> [auth] library/nginx:pull token for registry-1.docker.io 0.0s
=> [auth] library/node:pull token for registry-1.docker.io 0.0s
------
> [internal] load metadata for docker.io/library/nginx:1.20.2-alpine:
------
Dockerfile:12
--------------------
10 | yarn build
11 |
12 | >>> FROM nginx:1.20.2-alpine as app
13 |
14 | COPY --from=build /app/package.json /usr/local/lib/
--------------------
ERROR: failed to solve: DeadlineExceeded: DeadlineExceeded: failed to fetch oauth token: Post "https://auth.docker.io/token": dial tcp 205.186.152.122:443: i/o timeout
解决办法:
# 禁用 Docker BuildKit
# 禁用使用 Docker CLI
export DOCKER_BUILDKIT=0
export COMPOSE_DOCKER_CLI_BUILD=0
在Docker中,DOCKER_BUILDKIT 和 COMPOSE_DOCKER_CLI_BUILD 是两个环境变量,控制着不同的构建行为。通过将这两个变量设置为 0,可以禁用一些高级的构建功能,并恢复到较老的构建方式,这样有时候可以避免在某些环境中遇到的问题。
DOCKER_BUILDKIT=0:禁用 Docker BuildKit。BuildKit 是 Docker 引入的新的构建系统,提供了更快和并行化的构建。但在某些情况下,禁用它可以帮助解决兼容性问题或错误。
COMPOSE_DOCKER_CLI_BUILD=0:禁用使用 Docker CLI 构建的特性,而恢复使用 docker-compose 自带的构建流程。
通过将这两个变量设置为 0,您可以绕过某些在启用了 BuildKit 和 Docker CLI 构建时出现的问题,使得构建过程能够顺利进行。
如果禁用这两个功能后可以正常 build,说明可能是 Docker BuildKit 或 Docker CLI 的某些特性与当前环境或项目配置不兼容。
文章链接地址:https://me.jinchuang.org/archives/1566.html
本站文章除注明[转载|引用|来源],均为本站原创内容,转载前请注明出处