无法构build特定的Dockerfile

我能够构build一个Dockerfile

docker build -t deepak/ruby .

但是对于一个没有命名为Dockerfile

 # DOCKER-VERSION 0.4.8 FROM deepak/ruby MAINTAINER Deepak Kannan "deepak@example.com" RUN ./bin/rails s 

让我们说它被称为我们build造的Dockerfile.app

docker build -t deepak/app Dockerfile.app

那么我得到的错误

 Uploading context 0 bytes Error build: EOF EOF 

docker build -f MyDockerfile。

或用标签:

docker build -t mysuperimage -f MyDockerfile。

docker构build的最后一个参数是构buildpath,当你放. 这意味着这是您将findDockerfile的path。 当你将其更改为Dockerfile.app它会尝试查找Dockerfile.app/Dockerfile ,这是不正确的。

我不确定它是否仍然有效,但是您曾经能够做到这一点。

 $ docker build -t deepak/app - < Dockerfile.app 

尝试一下,看看是否有帮助,如果没有,可能会打开一个docker问题来添加这个function,或者更新关于如何使用不同名字的Dockerfile的文档。

更多信息: http : //docs.docker.io/en/latest/commandline/command/build/

这工作

 docker build doronaviguy/helloworld -f SomeDockerFile . 

Docker构build文档

你也可以使用docker-compose实现这个function。

在构build部分下的docker-compose.yml中,可以指定存储dockerfile及其备用名称的目录,如下所示:

 build: context: "/path/to/docker/directory" dockerfile: "dockerfile-alternate-name" 

泊坞窗,撰写

尝试docker进纸 。 它使用dockerfunction通过stdin构build上下文。 我写了这个剧本来解决你正面临的问题。

要用不同的Dockerfile来代替Dockerfile,可以这样做:

 dockerfeed -d Dockerfile.app . | docker build -t deepak/ruby - 

瞧。 Dockerfeed与Docker docker build相同。 它用Dockerfile打包源代码,但是可以让你用所需的Dockerfilereplace旧的Dockerfile。 在这个过程中没有创build文件,没有源文件被改变。 生成的tar归档文件被传送到docker中,docker又将其发送给docker守护进程。

更新:在没有-f开关可用的情况下,这在过去是一个有效的答案。 docker版本1.5引入了这个选项。 现在你可以像这样构build一个不同的Dockerfile:

 docker build -f other-Dockerfile .