我试图用kvm运行一个容器,使用我在这里找到的代码:https://github.com/jessfraz/dockerfiles/tree/master/kvm 我创建了一个新目录,cd了进去并创建了dockerfile和start.sh文件.当我下令构建时,它输出了以下错误消息:
向Docker守护程序发送构建上下文3.584kB来自守护程序的错误响应:当前上下文中没有构建阶段
我不知道这意味着什么,我无法谷歌答案.任何帮助将不胜感激.
Pau*_*ean 125
你的dockerfile有一个: FROM repo/image
作为第一线?当我忘记指定我正在构建的docker镜像时,我收到此错误.
即使您正在构建"源图像",仍需要指定FROM scratchdockerfile的第一行.
Yon*_*sen 24
这通常是因为在FROM命令之前写入的文本.尝试删除dockerfile中的注释并重新构建.
供参考https://github.com/moby/buildkit/issues/164
NoB*_*ner 22
根据docs.docker.com上的文档,Dockerfile的第一个非注释行必须是该FROM行。引用文档:
该
FROM指令初始化一个新的构建阶段并为后续指令设置基础映像。因此,有效Dockerfile必须以FROM指令开头。
Cur*_*her 16
我遇到过同样的问题!帮助我的是将FROM命令作为文件中的第一个命令:
坏:
MAINTAINER your name "your@email.com"
FROM dockerimagename
Run Code Online (Sandbox Code Playgroud)
好:
FROM dockerimagename
MAINTAINER your name "your@email.com"
Run Code Online (Sandbox Code Playgroud)
当您ENV在声明之前声明环境变量()时,将显示此消息FROM。
例如:
# Define variables.
ARG PORT
ENV SERVER_PORT=$PORT
# Install minimal Python 3.
FROM python:3.7-alpine
# Install Python requirements.
COPY requirements.txt /
RUN pip install -r /requirements.txt
# Copy app source code.
COPY src/ /app
...
Run Code Online (Sandbox Code Playgroud)
要解决此问题,请交换声明,以便在之后设置任何环境变量FROM。
# Install minimal Python 3.
FROM python:3.7-alpine
# Define variables.
ARG PORT
ENV SERVER_PORT=${PORT}
# Install Python requirements.
COPY requirements.txt /
RUN pip install -r /requirements.txt
# Copy app source code.
COPY src/ /app
...
Run Code Online (Sandbox Code Playgroud)
这是我的情况,因为我ENV之前已经指定过FROM,并且正如已经提到的,FROM应该是 Dockerfile 中的第一个表达式。
但
由于此 PR https://github.com/moby/moby/pull/31352ARG ,您可以在之前指定FROM哪个可能是适合您的替代方案。
所以我改变了
ENV MY_VAR 1
FROM ...
Run Code Online (Sandbox Code Playgroud)
到
ARG MY_VAR=1
FROM ...
Run Code Online (Sandbox Code Playgroud)
顺便说一句,您可以在这里了解 ARG 与 ENV 的区别https://vsupalov.com/docker-arg-vs-env/
| 归档时间: |
|
| 查看次数: |
33388 次 |
| 最近记录: |