- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在尝试在 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/
nodemon 一直对我有用。我总是使用 nodemon server,它会运行服务器文件并观察更新,然后 Node 会重新启动。但是现在当我这样做时,我在 cmd 中得到了这个(我使用的是 Wind
我有一个在构建后生成 build 文件夹的应用程序。每次,该应用程序都会删除整个 build 文件夹,然后将其与新文件一起添加回来。 我试着观察这个文件夹的变化并做一些事情。 nodemon --wa
我是 NodeJS 方面的初学者。 环境是 Windows 7 64 位。 Node 已安装并正常工作。 NPM 也运行良好。 Nodemon 已安装。 (在应用程序中以及在全局范围内) 现在当我运行
我有一个正在开发的 Node.js 服务器,并且我正在使用 nodemon 在源代码更改时重新启动服务器。 该服务器依赖于我也在开发的另一个模块,因此如果对该模块的更改也重新启动服务器会很好。 最好的
我想使用 nodemon 来监控我的 node.js 应用程序,然后我执行下一行命令: npm install -g nodemon 或 npm install nodemon -g 当我移动到我的应
我使用express-generator创建项目框架,并使用jade、sass代替ejs和stylus,然后我使用concurrent组合watch和nodemon,如the doc ,但是当我运行
我正在尝试设置一个 serve 任务来执行以下操作: 调用watch任务来监视任何源更改。 (监视任务调用 build 任务,将应用构建到“build”文件夹中) 使用 Nodemon ( gulp-
我正在关注VUE tutorial在 Mac 上(在 youtube 中显示)。 在我的 src/app.js 中,我只有 console.log('hi'); 如 YouTube 视频所示,pack
我目前正在为此学习 express.js 我已经在全局范围内安装了 express 和 nodemon 所以每当我想运行命令 nodemon express1.js 时出现错误,即使我已经在全局范围内
当我在应用程序中运行 nodemon bin/www 时,它运行良好,当我尝试运行 nodemon app 时,它会抛出此错误: '\"node .\bin\www\"' is not recogni
这是我的 nodemon.json { "watch": ["src/**/*.ts"], "exec": "node out/index.js" } 我通过执行来运行nodemon:
我在运行 El Capitan 的 Mac 上。我有 Node v5.6.0 和 npm v3.6.0。当我尝试运行 nodemon 时,我得到: -bash: nodemon: command no
我尝试将 nodemon -L (--legacy-watch) 选项设置为 gulp-nodemon 的 nodemon 配置,并在下面使用空字符串值添加它,但它不起作用。谁能帮忙? gul
目前我已经使用命令npm install -g nodemon安装了nodemon。我遇到了权限问题,所以我使用 sudo npm install -g nodemon 执行命令,然后我就做到了。但是
我尝试在 Visual Studio 代码上使用 nodemon 调试 nodejs 应用程序,以便每次保存代码时都可以自动重新启动调试器。 但是,当我在 Visual Studio 代码上运行调试器
当我尝试使用 nodemon 执行 server.js 文件时,它显示错误。 C:\Users\gourav\WebstormProjects\Node.js-Register-Login-App-m
使用 Mac 通过 Node.js 在 Heroku 上部署 我的问题: State changed from starting to crashed && sh: 1: nodemon: not
我想从 NodeMon 的监控中排除一些特定文件。我怎样才能做到这一点? 我现有的配置: nodemon: { all: { script: 'app.js',
我有一个网络应用程序。我想与它一起使用nodemon。要启动我的应用程序,需要运行'node ./bin/www',但nodemon默认运行另一个文件。我的网络应用程序不可用。 当我输入cmd时 no
我正在使用 nodemon 重新加载我的服务器,但是当我保存文件时它会抛出一个错误, 它说该端口已被另一个进程使用。 这是错误: events.js:174 throw er; // Un
我是一名优秀的程序员,十分优秀!