使用不同的dockerfiles从源目录构builddocker镜像

我的目标是从相同的源代码构build几个不同的docker图像。

我有我的./src文件夹(node.js项目)。 里面./src我有first.dockerfile和第二个dockerfile。

用于构build我使用这个标准命令行的项目

sudo docker build -t doronaviugy/myproject . 

这在使用默认的Dockerfile时没有问题

我正在尝试使用该行从特定的dockerfile构build它

 sudo docker build -t doronaviguy/myproject - < first.docker 

这一行工作,但现在path不被复制在图像内

 #Inside the Dockerfile ADD . /src 

我想我明白如何指定一个dockerfile参数,但是我需要指定一个direcotry参数在docker镜像里复制。

非常感谢。

从Docker 1.5开始,你可以使用-f参数来selectDockerfile来使用例如:

docker build -t doronaviugy/myproject -f dockerfiles/first.docker .

如果使用stdin构build图像( - < first.docker语法),则不会有构build上下文,因此您将无法使用引用本地文件的COPYADD指令。

如果您必须使用旧版本的Docker,则在调用Dockerfile build之前,需要使用一些脚本将特定的Dockerfile复制到构build上下文的根目录中的Dockerfile