Roh*_*ngh 12 linux ubuntu node.js docker dockerfile
我是 docker 新手,我正在尝试测试节点服务器
文件
FROM node:8
WORKDIR /home/test-ci-node
COPY . .
EXPOSE 8080
CMD [ "node", "server.js" ]
Run Code Online (Sandbox Code Playgroud)
服务器.js
var http = require('http');
//create a server object:
http.createServer(function (req, res) {
console.log("got req");
res.write('Hello World'); //write a response to the client
res.end(); //end the response
}).listen(8080); //the server object listens on port 8080
console.log("listining at 8080");
Run Code Online (Sandbox Code Playgroud)
我用命令启动了我的 docker 镜像
码头工人运行 -p 8080:8080 -d docker_img
现在在server.js 中,我将响应更改为
res.write('Hello World 改变了!');
然后我尝试重新启动容器但没有反映更改,我尝试了一些谷歌方法但结果相同。
为了反映变化,我不得不重建图像。
那么有没有正确的方法来反映更改而不重建图像。
Art*_*dor 10
在您的 docker 文件中,您正在使用
COPY . .
Run Code Online (Sandbox Code Playgroud)
这意味着,当您构建 docker 时,您将当前文件夹复制到容器的默认文件夹中。可能 /root
但是这个副本不会在你每次运行容器或启动它时执行,只有在你构建时才会执行。
为了能够在不重新构建的情况下实时查看您所做的每一个更改,您需要创建一个卷,这将是您的主机和容器之间的链接。主机或容器上更改的每个内容都将共享给另一个。
请注意,在您的 dockerfile 中,声明 VOLUME 实际上不会更改任何内容,它只是一个信息。要实际制作卷,您需要在 docker run 命令行中添加 -v /host/path:/container/path 。
| 归档时间: |
|
| 查看次数: |
7427 次 |
| 最近记录: |