6

我有一个容器 ==>FROM node:5 每次更改代码后节点都应该重新启动。

但是我无法在不重新启动整个 docker 容器的情况下重新启动 Node 服务器。

我有很多npm install每次我重新启动容器时,我都会在 dockerfile 上运行

我已经在使用共享文件夹在我的容器中拥有最新的代码。

4

3 回答 3

15

如果您只需要在更改后重新启动 Node.js 服务器,而不是使用node命令启动服务器,您可以使用node-devnodemon 之类的工具。要利用这些,您需要更新 Dockerfile 中的命令,例如CMD [ "node-dev", "server.js" ].

由于您已经将本地文件作为卷存储在 Docker 容器中,因此对这些文件的任何更改都将重新启动服务器。

于 2019-11-26T00:33:31.050 回答
0

这就是我的做法。在您的 docker-compose.yml 中,在相应服务的条目中,添加一个入口点以运行 npx nodemon /path/to/your/app 即使您没有在映像中安装 nodemon,这也将起作用。

例如

services:
  web:
    image: foo
    entrypoint: ["npx", "nodemon", "/usr/src/app/app.js"]
于 2021-12-30T22:00:14.193 回答
-5

我认为这不是 Docker 的最佳方式。您应该尝试构建自己的 Docker 映像,其中包含您的代码更改。在您自己的 Docker 映像中,您可以将npm install步骤作为容器构建的一部分,因此您无需在容器启动时运行此命令。

于 2016-05-19T16:24:40.513 回答