我有一个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
由于
答案 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