gpt4 book ai didi

使用 -f 选项构建的 Docker 找不到 Dockerfile

转载 作者:IT老高 更新时间:2023-10-28 21:39:17 25 4
gpt4 key购买 nike

我已经尝试了很多与 docker -f 选项的组合,但我从来没有让它工作

我可以这样做:

docker build -t foo/bar .

但我不能这样做:

docker build -t foo/bar -f Dockerfile .

或者这个:

docker build -t foo/bar -f ./Dockerfile .

这给了我以下错误:

unable to prepare context: The Dockerfile (c:\path\Dockerfile) must be within the build context (.)

我在 Windows 7 上通过默认 vm 使用 docker。Docker 版本是 1.8.1,构建 d12ea79

我看不出有什么不同。为项目中的不同任务使用不同的 Dockerfile 可能会非常好,但如果没有 -f 选项,这确实是不可能的。

最佳答案

好吧,正如错误消息所暗示的那样,您的 Dockerfile 不在 context 中,它是当前目录 (.)你的情况。

使用 -f 指定的 docker 文件必须始终位于作为参数指定的 context 目录中

所以,通常这应该可以正常工作:

docker build -f /path/to/context/dir/Dockerfile /path/to/context/dir

还有这个:

cd /some/dir
docker build -f /some/dir/customDir/Custom-Dockerfile-name .

虽然这会失败:

docker build -f /path/to/diff/dir/Dockerfile /path/to/context/dir

来自 Docs :

docker build [OPTIONS] PATH | URL | -

The docker build command builds Docker images from a Dockerfile and a “context”. A build’s context is the set of files located in the specified PATH or URL

还有:

By default the docker build command will look for a Dockerfile at the root of the build context. The -f, --file, option lets you specify the path to an alternative file to use instead. This is useful in cases where the same set of files are used for multiple builds. The path must be to a file within the build context. If a relative path is specified then it is interpreted as relative to the root of the context.

关于使用 -f 选项构建的 Docker 找不到 Dockerfile,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32235987/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com