簡體   English   中英

Docker 或 nodemon:重新加載問題

[英]Docker or nodemon: reloading issue

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

資源: 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"
  }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM