簡體   English   中英

docker 構建映像后未安裝 Nodemon

[英]Nodemon not installed after docker build image

我有一個節點應用程序的圖像。 在 package.json 我有 nodemon。 我想通過更新主機源來運行容器,其中nodemon將在主機 src 中進行熱重載。 所以我正在使用綁定安裝。

來自節點應用程序的package.json

{
  "name": "backend",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "nodemon app.js"
  },
  "author": "MOI",
  "license": "ISC",
  "dependencies": {
    "body-parser": "^1.19.0",
    "express": "^4.17.1",
    "mongoose": "^5.10.3",
    "morgan": "^1.10.0"
  },
 "devDependencies": {
    "nodemon": "^2.0.4"
 }
}

Dockerfile

FROM node

WORKDIR /app

COPY package.json .

RUN npm install

COPY . .

EXPOSE 80

CMD ["npm", "start"]

然后我用這個運行容器,當我檢查日志時,我看不到nodemon正在運行。 幾乎就像它根本沒有安裝一樣。 有什么想法可以解決這個問題嗎?

docker run --name goals-backend -v /Users/path/for/bind/mount/backend:/app \
-v logs:/app/logs -v /app/node_modules -d --rm \
-p 80:80 --network goals-net goals-node

您在 /app 上的綁定“隱藏”了圖像中“/app”中的所有內容,並將其替換為主機上 /Users/path/for/bind/mount/backend 的內容。 與 /app/node_modules 上的卷相同,盡管因為這是一個卷而不是綁定掛載,所以 /app/node_modules 的內容將在第一次創建卷時復制到卷中。

在沒有卷映射的情況下運行它以確保映像按原樣工作

docker run --name goals-backend -d --rm -p 80:80 --network goals-net goals-node

暫無
暫無

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

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