我应该如何实现更好的Docker工作stream?
每当我在nodejs应用程序中更改文件时,我必须重新构build泊坞窗图像。
这感觉多余,并减慢我的工作stream程。 有没有适当的方式来同步nodejs应用程序文件,而不重build整个图像,或者这是一个正常的使用?
这听起来像你想加快发展进程。 在这种情况下,我build议使用docker run -v
选项将您的目录安装到您的容器中: https : //docs.docker.com/engine/userguide/dockervolumes/#mount-a-host-directory-asa-a-数据量
一旦你完成开发你的程序生成图像,现在启动docker没有-v
选项。
我最终做的是:
1) 通过 docker run
命令使用卷 – 这样我就可以更改代码,而无需每次重builddocker映像。
2)我有一个node_modules被覆盖的问题,因为一个卷的行为就像是一个挂载 – 通过节点的PATH遍历来修复它。
Dockerfile:
FROM node:5.2 # Create our app directories RUN mkdir -p /usr/src/app WORKDIR /usr/src/app RUN npm install -g nodemon # This will cache npm install # And presist the node_modules # Even after we are using the volume (overwrites) COPY package.json /usr/src/ RUN cd /usr/src && npm install #Expose node's port EXPOSE 3000 # Run the app CMD nodemon server.js
命令行:
build立:
docker build -t web-image
跑步:
docker run --rm -v $(pwd):/usr/src/app -p 3000:3000 --name web web-image