【问题标题】:Docker or nodemon: reloading issueDocker 或 nodemon:重新加载问题
【发布时间】:2021-08-10 18:51:12
【问题描述】:

Docker 容器中的 nodemon 是否有任何原因停止重新加载? 在项目进行到一半之前,我在重新加载方面没有任何问题。现在我必须docker-compose downdocker-compose up 才能看到任何更改(纯文本、js 或样式)。我没有收到任何错误。我已尝试将 package.json 文件更改为 "start": "nodemon --legacy-watch",但问题仍然存在。

package.json

{
  "name": "mongoose-express-docker",
  "version": "1.0.0",
  "description": "Simple learning environment.",
  "main": "app.js",
  "scripts": {
    "start:express": "node ./app.js",
    "start": "nodemon --legacy-watch",
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "dependencies": {
    "express": "^4.17.1",
    "method-override": "^3.0.0",
    "mongoose": "^5.12.7",
    "morgan": "^1.10.0",
    "ejs": "^3.1.6",
    "ejs-mate": "^3.0.0"
  },
  "devDependencies": {
    "nodemon": "^2.0.7"
  }
}

docker-compose.yml

version: "3.4"

services:
  nodejs:
    image: nodejs_mongo_docker
    build: .
    user: node
    environment:
      NODE_ENV: production
    ports:
      - 3000:3000
    volumes:
      - .:/usr/src/app
    links:
      - mongodb

  mongodb:
    image: mongo:4.0.24
    ports:
      - 27017:27017
    volumes:
      - data:/data/db
    command: mongod --port 27017 --bind_ip_all

volumes:
  data:

Dockerfile

FROM node:14.16.1-alpine3.10
ENV NODE_ENV production
WORKDIR /usr/src/app
RUN npm install nodemon -g
COPY ["package*.json", "./"]
RUN npm install --production --silent && mv node_modules ../
COPY . .
EXPOSE 3000
CMD npm start

完整代码:https://github.com/melissakipp/yelp-camp

【问题讨论】:

  • 我不确定我是否需要删除问题...我仍然遇到 nodemon 不重新加载而不重新关闭容器并再次备份的问题,但我发现了为什么我的样式在哪里不被应用。我在stackoverflow.com/questions/13486838/… 找到了解决方案

标签: node.js docker nodemon


【解决方案1】:

资源:https://github.com/remy/nodemon#application-isnt-restarting

应用程序未重新加载
“..网络环境(例如运行 nodemon 的容器在已安装的驱动器上读取)...”

我需要在我的项目中添加一个 nodemon 配置。有两种添加方法,一种是创建一个名为 nodemonConfig.json 的单独文件,第二种选择是将"nodemonConfig": {} 添加到我的package.json 文件中。

经过几次尝试和错误,我发现这种组合很有效。

package.json

{
  "name": "mongoose-express-docker",
  "version": "1.0.0",
  "description": "Simple learning environment.",
  "main": "app.js",
  "scripts": {
    "start:express": "node ./app.js",
    "start": "nodemon -L ./app.js",
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "nodemonConfig": {
    "restartable": "rs",
    "ignore": [
      ".git",
      "node_modules/**/node_modules"
    ],
    "verbose": true,
    "execMap": {
      "js": "node --harmony"
    },
    "legacyWatch": true,
    "ext": "ejs, js, css"
  },
  "keywords": [
    "docker",
    "ejs",
    "express",
    "mongoose",
    "nodemon"
  ],
  "author": "Melissa Kipp",
  "license": "ISC",
  "dependencies": {
    "bootstrap": "^5.0.1",
    "bootstrap-icons": "^1.5.0",
    "ejs": "^3.1.6",
    "ejs-mate": "^3.0.0",
    "express": "^4.17.1",
    "joi": "^17.4.0",
    "method-override": "^3.0.0",
    "mongoose": "^5.12.7",
    "morgan": "^1.10.0"
  },
  "devDependencies": {
    "nodemon": "^2.0.7"
  }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-10-03
    • 2019-09-13
    • 2023-03-26
    • 2021-10-21
    • 1970-01-01
    • 2018-05-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多