繁体   English   中英

如何在 Docker 容器中设置 Nodemon?

[英]How do you setup Nodemon in a Docker container?

我正在尝试在 Docker 容器中设置 Nodemon。 它说 nodemon 正在运行,但是当我更改 index.js 文件中的代码时,它不会像在 docker 之外那样重新加载。 我尝试将 -L 添加到命令中,但没有运气。 我也尝试在 docker 文件中安装 nodemon,但没有运气。

每当我更改 index.js 文件时,我都必须执行 docker-compose up --build。

有任何想法吗?

这是我的文件结构:

-api
  -node_modules
  -.dockerignore
  -Dockerfile
  -index.js
  -package.json
  -package-lock.json
-docker-compose.yml

docker-compose.yml:

version: '3.4'

services:
  api:
    build:
      context: ./api
    container_name: api
    environment:
      - PORT=3001
    volumes:
      - ./api/src:/usr/app/src
    ports:
      - '3001:3001'
    command: npm run dev

Dockerfile:

FROM node:14.15.2-alpine3.12

WORKDIR /usr/app

COPY package*.json ./

RUN npm install

COPY . .

package.json:

{
 "name": "api",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "dependencies": {
    "express": "^4.17.1"
  },
  "scripts": {
    "dev": "nodemon index.js"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "nodemon": "^2.0.6"
  }
}

我想到了!!!

经过大量的试验和错误。 这与我的 docker compose 以及 nodemon 中的卷有关。 不是 100% 确定为什么任何洞察力也会有所帮助。

解决方法是将我的音量从

- ./api/src:/usr/app/src

至:

- ./api:/usr/src/app

然后我必须将 -L 标志添加到我的 nodemon 命令中才能重新加载。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM