Muh*_*sir 84 docker dockerfile docker-compose gatsby
我试图为我的 Gatsby 应用程序构建我的 Docker 映像。每当我运行命令时 docker build . -t gatsbyapp
,它都会给我一个错误:
failed to solve with frontend dockerfile.v0: failed to build LLB:
failed to compute cache key: "/.env" not found: not found
Run Code Online (Sandbox Code Playgroud)
同时我的 Dockerfile 如下所示:
FROM node:13
WORKDIR /app
COPY package.json .
RUN yarn global add gatsby-cli
RUN yarn install
COPY gatsby-config.js .
COPY .env .
EXPOSE 8000
CMD ["gatsby","develop","-H","0.0.0.0"]
Run Code Online (Sandbox Code Playgroud)
dim*_*ror 139
如果您使用 Windows 版 Docker,则需要在“设置”中从 Docker Engine 禁用 buildkit。它对我有用并解决了我的错误
将buildkit选项设置为false。
{
"builder": {
"gc": {
"defaultKeepStorage": "20GB",
"enabled": true
}
},
"experimental": false,
"features": {
"buildkit": false
}
}
Run Code Online (Sandbox Code Playgroud)
Lui*_*eia 85
我遇到了同样的问题,我所要做的就是将 docker 配置文件名大写
dockerfile
> 没用
Dockerfile
> 工作了
Est*_*ens 67
在 mac 上升级到最新的 docker 桌面版本后,我遇到了这个问题。解决了这个问题的评论
解决方案:不要使用 buildkit,它对我有用。
export DOCKER_BUILDKIT=0
export COMPOSE_DOCKER_CLI_BUILD=0
Run Code Online (Sandbox Code Playgroud)
小智 29
可能不是 op 的问题,但是我在尝试构建在 Windows 子系统 Linux (WSL) [Debian WSL2] 中运行的容器时遇到了这个问题,就在刚刚安装了 docker-compose 之后,我所要做的就是关闭 [ Debian] 终端并重新打开它,我的问题就解决了。
小智 21
如果您使用的是 Mac 或 Windows 版Docker Desktop,您可能还必须在“Docker Engine”JSON 配置中禁用它。
\nDocker Desktop \xe2\x86\x92 Settings \xe2\x86\x92 Docker Engine \xe2\x86\x92 将 "features": { buildkit: true} 更改为 "features": { buildkit: false}。
\n小智 19
我不记得我在哪里读到这篇文章,但如果您使用WSL2并收到该错误,请删除 WSL2 主文件夹中的 Docker 配置文件并尝试重建映像。
也就是说,如果您已经检查了文件名并再次确认所有内容都命名正确(Dockerfile、.dockerignore等)
WSL2 Ubuntu:
rm ~/.docker/config.json
Run Code Online (Sandbox Code Playgroud)
Sam*_*son 15
如果您看到这个问题,它实际上并不是真正的问题。实际问题嵌套在错误日志中的某处。要查看实际问题,您需要像这样运行构建命令:
DOCKER_BUILDKIT=0 docker build .
Run Code Online (Sandbox Code Playgroud)
请注意DOCKER_BUILDKIT=0
. 这将使构建工具包不会隐藏嵌套错误。从那里你应该能够谷歌正确的解决方案。
这也将使构建在命令行中看起来不同,但不要担心,只需查找错误即可。
Foo*_*Bar 13
就我而言,我试图wp-content
从我正在构建的 docker 映像中的当前目录复制过来。像这样:
FROM wordpress:latest
# Copy wp-content
COPY ./wp-content/ ./var/www/html/wp-content/
Run Code Online (Sandbox Code Playgroud)
但是,我注意到我有一个.dockerignore
文件,该文件明确被告知忽略wp-content
.
当我从中取出时wp-content/
,.dockerignore
它工作正常。
就我而言
无法使用前端 dockerfile.v0 解决:无法创建 LLB 定义:当前上下文中没有构建阶段
是由于在FROM之前设置ENV引起的。对于某些 Dockerfile 指令来说,这可能是不允许的。将 ENV 移到 FROM 之后后,错误就消失了。
如果您使用的是 docker 桌面,重新启动 Docker 对我有用。故障排除 -> 重新启动
就我而言,我在“。”之后有一个额外的空间。在上下文选项中
docker build -t myapp .[EXTRA_SPACE_HERE]
Run Code Online (Sandbox Code Playgroud)
我有一个错字,
FROM apline:3.7
代替FROM alpine:3.7
。
就我而言,这是因为文档中的用例表达不足。几乎所有示例都告诉您使用.
and Dockerfile
(大写 D),但它们大多没有明确告诉您如何自定义。
docker image build --tag any_image_tag --file any_file_name path_to_your_context_folder
Run Code Online (Sandbox Code Playgroud)
我觉得这个比较好,希望对来这里的人有所帮助。any_file_name
实际上是任何包含构建指令的文件名。其中不需要“dockerfile”,但如果它与上下文文件夹不同,它有助于识别并提供完整路径。path_to_your_context_folder
基本上是您的工作所在,例如 Web 应用程序。
例如,以下是我当前在 Windows 中的测试,其中COPY . /app
使用上下文文件夹作为.
:
docker image build --tag nested_image --file C:\WorkSpace\myapp\dockerfiles\any_file_name C:\WorkSpace\myapp\contextfiles\
Run Code Online (Sandbox Code Playgroud)
PS:这个主题确实对同一问题有有趣的答案,但有很多奇怪的原因。我的只是一个隐藏在显而易见的问题的旁注。
小智 5
已经为我解决了
我使用的是MacBook Air (M1)并遇到了问题,因为我使用的是支持linux/amd64 的映像,而我的系统架构是arm64。
因此,请确保运行基于您的设备的兼容映像。
归档时间: |
|
查看次数: |
137113 次 |
最近记录: |