gpt4 book ai didi

javascript - Nodemon 未使用 docker 容器重新启动

转载 作者:太空宇宙 更新时间:2023-11-04 02:44:56 25 4
gpt4 key购买 nike

当我对 app.js 文件进行更改时,我已经尝试重新启动服务器两天了,但现在没有成功。我使用 docker 桌面和 nodemon。并尝试遵循老师的指导。我被告知要让这项工作我应该使用音量,所以在终端中我运行:

docker build --tag=jade:latest 。

docker run -v/Users/Jake/Documents/AdvancedWeb/JadeWeb/application/src:/src -p 8080:8080 jade

在第二行中,我可能尝试了一百种不同的语法,这似乎是最接近工作的语法,并且对我来说最有意义。它启动服务器,nodemon 告诉我它正在等待更改。

Dockerfile:

FROM node:13.3.0-stretch
EXPOSE 8080
WORKDIR /application
COPY package.json package.json
RUN npm install
COPY src src
CMD ["npm", "run", "start"]
// I have tried ALOT of variants of CMD aswell, like ["npm", "run", "start", "src/app.js"],
// ["npm", "run", "dev"], ["node", "src/app.js"] ["nodemon", "src/app.js"]
// ["npm", "start"]

package.json:

    {
"name": "application",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"start": "nodemon --legacy-watch src/app",
"dev": "nodemon src/app -L"
},
"devDependencies": {
"nodemon": "^2.0.2"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"express": "^4.17.1"
}
}

最佳答案

我也遇到了同样的问题。到处找遍了。每一个可能的解决方案。从使用 nodemon 命令在脚本中将 --legacy-watch 的 -L 附加到 --watch 。我的问题出在 docker-compose.yml 中。在您的应用服务中,有一个volumes属性。卷基本上将您在系统中编写的代码映射到容器环境。所以,如果我写,

卷:-“./application:/application”

这意味着您的nodejs应用程序所在的应用程序文件夹映射到容器中的/application。现在,您在系统中所做的任何更改都将反射(reflect)在容器代码中。由于nodemon已经在 Node 中处于事件状态,因此它将重新启动!!

关于javascript - Nodemon 未使用 docker 容器重新启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59373683/

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