使用不同的Dockerfile从源目录构建Docker镜像

33

我的目标是从同一源代码构建几个不同的Docker镜像。

我有一个./src文件夹(node.js项目)。 在./src中,我有第一个dockerfile和第二个dockerfile。

为了构建项目,我使用这个标准命令行

sudo docker build -t doronaviugy/myproject .

使用默认的Dockerfile没有任何问题。

我正在尝试使用以下命令从特定的Dockerfile构建:

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

这行代码可以工作,但现在路径没有被复制到图像内部。

#Inside the Dockerfile
ADD . /src

我想我理解如何指定Dockerfile参数,但我需要指定一个目录参数以便复制到Docker镜像内。

非常感谢。

1个回答

63
自Docker 1.5版本开始,您可以使用-f参数来选择要使用的Dockerfile,例如: docker build -t doronaviugy/myproject -f dockerfiles/first.docker . 如果您使用stdin构建镜像( - <first.docker 语法),则您将没有构建上下文,因此无法使用引用本地文件的COPYADD指令。
如果您必须使用旧版Docker,则需要使用一些脚本将您特定的Dockerfiles复制到构建上下文的根目录下的Dockerfile中,然后调用docker build

谢谢,我尝试使用-f参数,但没有成功,然后我注意到我需要升级我的Docker版本到1.5。 - doron aviguy
@Adrian Mouat,你能看一下我在这里做错了什么吗?https://stackoverflow.com/questions/60407265/docker-connection-error-connection-broken-by-newconnectionerror/60407542?noredirect=1#comment106864535_60407542 - Rahul Verma

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接