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

dor*_*guy 10 docker dockerfile

我的目标是从相同的源代码构建几个不同的docker镜像.

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

用于构建项目我使用此标准命令行

sudo docker build -t doronaviugy/myproject .
Run Code Online (Sandbox Code Playgroud)

这使用默认的Dockerfile没有问题

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

sudo docker build -t doronaviguy/myproject  - <   first.docker
Run Code Online (Sandbox Code Playgroud)

此行有效,但现在路径不会复制到图像中

#Inside the Dockerfile
ADD . /src
Run Code Online (Sandbox Code Playgroud)

我想我明白了如何指定dockerfile参数,但是我需要指定一个可以在docker镜像中复制的direcotry参数.

非常感谢.

Adr*_*uat 21

从Docker 1.5开始,您可以使用-f参数选择要使用的Dockerfile,例如:

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

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

如果必须使用旧版本的Docker,则需要使用一些脚本将特定的Dockerfiles复制到Dockerfile构建上下文的根目录,然后再调用docker build.