从相同的Dockerfile创建图像

时间:2015-07-01 01:27:51

标签: docker

我有一个nodejs应用程序,它有两个入口点 worker.js web.js

基本上,网络应该响应所有传入的http请求,工作人员应该执行一些后端任务。

这是一个问题,如何从同一个代码库创建两个单独的图像?问题是我无法使用不同的Dockerfiles在我的项目中创建单独的文件夹,因为我无法执行ADD ../ /app而我不想保留两个代码库副本。项目是git repo但未发布。

bash docker run -d -p 80:80 --name app-web application-web docker run -d --name app-worker application-worker

由于

2 个答案:

答案 0 :(得分:1)

每个代码库坚持使用一张图片,并使用--workdir或不同的CMD来启动相应的脚本:

docker run -d -p 80:80 --name app-web -w /app/web application
docker run -d --name app-worker -w /app/worker application

答案 1 :(得分:1)

Abdullah的答案是建议的一个IMO(以节省一些磁盘空间)。

但要回答默认问题,您可以使用2个不同的标记构建图像:

# assuming we're in the Dockerfile directory
docker build -t application-web .
docker build -t application-worker .

然后从这些图像中运行不同的容器:

docker run -d -p 80:80 --name app-web application-web
docker run -d --name app-worker application-worker