gpt4 book ai didi

node.js - Docker 容器内的 Nodemon

转载 作者:搜寻专家 更新时间:2023-11-01 00:20:31 24 4
gpt4 key购买 nike

我正在尝试在 docker 容器中使用 nodemon:

Dockerfile

FROM node:carbon
RUN npm install -g nodemon
WORKDIR /usr/src/app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 8080
CMD [ "nodemon" ]

构建/运行命令

docker build -t tag/apt .
docker run -p 49160:8080 -v /local/path/to/apt:/usr/src/app -d tag/apt

将本地卷附加到容器以监视代码更改会导致一些覆盖,并且 nodemon 会提示找不到 Node 模块(其中任何一个)。我该如何解决这个问题?

最佳答案

在您的 Dockerfile 中,您在复制 package*json 文件后运行 npm install。在 /usr/src/app 中正确创建了一个 node_modules 目录,您就可以开始了。

但是,当您将本地目录挂载到 /usr/src/app 时,容器内该目录的内容将被本地版本的 Node 项目覆盖,这显然缺少node_modules 目录,导致您遇到的错误。

挂载目录后,您需要在正在运行的容器上运行 npm install。例如你可以运行这样的东西:

docker exec -ti <containername> npm install

请注意,您必须暂时CMD 指令更改为如下内容:

CMD ["sleep", "3600"]

为了能够进入容器。

这将导致在您的本地目录中创建一个 node_modules 目录,并且您的容器应该正确运行 nodemon(在切换回当前的 CMD 之后)。

关于node.js - Docker 容器内的 Nodemon,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48325920/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com