Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Nodemon未使用docker容器重新启动_Javascript_Node.js_Docker_Nodemon - Fatal编程技术网

Javascript Nodemon未使用docker容器重新启动

Javascript Nodemon未使用docker容器重新启动,javascript,node.js,docker,nodemon,Javascript,Node.js,Docker,Nodemon,当我对app.js文件进行更改时,我已经尝试重新启动服务器两天了,但现在没有成功。我正在使用docker桌面和nodemon。试着按照老师的指导去做。 我被告知要完成这项工作,我应该使用音量,因此在终端中我运行: docker build--tag=jade:最新版本。 docker run-v/Users/Jake/Documents/AdvancedWeb/JadeWeb/application/src:/src-p 8080:8080 jade 在第二排,我可能已经尝试了100种不同的语法

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

docker build--tag=jade:最新版本。

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

在第二排,我可能已经尝试了100种不同的语法,这似乎是最接近工作的语法,也是对我来说最有意义的语法。它启动服务器,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"]
    {
  "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"
  }
}
package.json:

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"]
    {
  "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"
  }
}

所以我忘了关闭服务器一段时间,很明显它确实重新启动了,但启动过程大约需要10秒钟,然后服务器关闭几秒钟,然后重新启动。另外,在进行更改并保存app.js文件后,我得到
[nodemon]由于更改而重新启动…

7次,然后再重新启动


如果我只是执行
npm run start
nodemon按预期工作。(一次快速重启)

所以我忘了关闭服务器一段时间,显然它确实重新启动了,但启动过程大约需要10秒钟,然后服务器关闭几秒钟,然后重新启动。另外,在进行更改并保存app.js文件后,我得到
[nodemon]由于更改而重新启动…

7次,然后再重新启动


如果我只是执行
npm run start
nodemon按预期工作。(一次快速重启)

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

卷数:-“/应用程序:/application”

这意味着nodejs应用所在的应用程序文件夹映射到容器中的/application。
现在,无论您在系统中做了什么更改,都将反映在容器代码中。由于nodemon在节点中已处于活动状态,它将重新启动!!

我遇到了相同的问题。到处搜索。所有可能的解决方案。从为--legacy watch附加-L到使用nodemon命令在脚本中观察。我的问题在docker-compose.yml中您的应用程序服务具有卷属性。卷基本上将您在系统中编写的代码映射到容器环境。 所以,如果我写

卷:——”/应用程序:/application“

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

您的
-v
选项的第二个参数是
/src
,但是您声明了
WORKDIR/application
;这些参数不一致。(您可能会发现直接在主机上运行
npm run start
比使用冗长的Docker命令更容易,因为它需要与root等效的权限。)我考虑过一点,但我对文件系统的总体理解非常糟糕。我将尝试对这些部分进行一些更改。谢谢。使用docker是项目的一部分,但是是的,当我站在/application目录works中时,只运行npm run start。我尝试过的唯一使服务器启动的更改是删除WORKDIR行,但它没有解决问题。据我所知,
-v
只是在我更改源代码时同步src文件。但是工作目录应该包括所有文件。但我甚至不确定。您使用的是哪个操作系统?
-v
选项的第二个参数是
/src
,但是u声明
WORKDIR/application
;这些命令没有对齐。(您可能会发现直接在主机上运行
npm run start
比使用冗长的Docker命令更容易,该命令需要与root用户同等的权限。)我考虑过一点,但我对文件系统的总体理解非常糟糕。我将尝试对这些部分进行一些更改。谢谢。使用docker是项目的一部分,但是是的,当我站在/application目录works中时,只运行npm run start。我尝试过的唯一使服务器启动的更改是删除WORKDIR行,但它没有解决问题。据我所知,
-v
只是在我更改源代码时同步src文件。但是工作目录应该包括所有文件。但我甚至不确定。你正在使用哪个操作系统?