无法使用前端 dockerfile.v0 解决:无法创建 LLB 定义:无法执行请求:运行 docker build 时出现头错误

Roz*_*dow 5 docker

我有以下 Dockerfile:

FROM alpine:latest

COPY . .

# C-CPP
RUN apk update \
&& apk add build-base \
&& apk add g++

# JAVA 8
RUN apk fetch openjdk8 \
&& apk add openjdk8
ENV JAVA_HOME=/usr/lib/jvm/java-1.8-openjdk
ENV PATH="$JAVA_HOME/bin:${PATH}"

# Python 3
RUN apk add python3 py3-pip \
&& apk add --upgrade bash

RUN ["chmod", "+x", "./run.sh"]
ENTRYPOINT [ "./run.sh" ]
Run Code Online (Sandbox Code Playgroud)

当我点击 command 时docker build -t dockerfile .,我收到此错误 - 这是什么意思以及如何修复它?

> [+] Building 28.2s (3/3) FINISHED  => [internal] load build definition
> from Dockerfile                                    1.3s
> => => transferring dockerfile: 32B                 0.2s
  => [internal] load .dockerignore                   1.6s
  => => transferring context: 2B                     0.1s
  => ERROR [internal] load metadata for docker.io/library/alpine:latest      26.5s 
> ------
>  > [internal] load metadata for docker.io/library/alpine:latest:
> ------ 
failed to solve with frontend dockerfile.v0: failed to create LLB definition: failed to do request: Head
> "https://registry-1.docker.io/v2/library/alpine/manifests/latest": di
Run Code Online (Sandbox Code Playgroud)

al tcp 52.200.78.26:443:I/O 超时

kus*_*kus 1

这显然是网络超时问题。没有语法错误,共享 dockerfile 工作正常。

如何验证网络问题:是否有curl工具

curl -v https://registry-1.docker.io/v2/library/alpine/manifests/latest
Run Code Online (Sandbox Code Playgroud)

卷曲的输出

在此输入图像描述

或者直接在浏览器中输入

https://registry-1.docker.io/v2/library/alpine/manifests/latest

  • 上面的curl命令是检查连接/超时问题。是的,它会给你身份验证错误,因为curl是直接访问url,curl没有使用你的docker登录令牌。身份验证问题并不意味着超时问题。docker 命令是一个神奇的命令,它在单个命令下执行很多操作。'curl 和 'docker' 命令之间没有比较。 (2认同)