使用-f选项的Docker构build不能findDockerfile

我已经尝试了很多与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,build d12ea79

我看不出有什么不同。 在项目中为不同的任务设置不同的Docker文件可能是非常好的,但是没有-f选项是不可能的。

这里是我如何使用docker build来避免这个错误的例子

docker build -f my.dockerfile ./

注意尾随的正斜杠

如果你这样做

docker build --help

你会注意到,除其他事项

-f, --file= Name of the Dockerfile (Default is 'PATH/Dockerfile')

你也可以做

docker build -t mytag .

要么

docker build -t mytag -f another_dockerfile

但是你不能一起使用点和-f。

这是点或Dockerfile与“-f”,而不是两个

我遇到了这个问题,事实certificate,这是由于我的dockerfile被挂载在NTFS中的一个文件夹中。 一旦我把它移动到一个普通的文件夹,它工作正常。

如果您的Dockerfile不在项目根目录(当前目录)中,请在-f之后显示它。

这是我用过的一个例子:

 docker build -t test_service -f deployment/dev/Dockerfile .