【问题标题】:How do you setup Nodemon in a Docker container?如何在 Docker 容器中设置 Nodemon?
【发布时间】:2021-03-29 11:38:00
【问题描述】:

我正在尝试在 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 容器内编辑 index.js 吗?
  • 没关系,我现在看到你的卷挂载了。尝试将 CMD 更改为 command: nodemon index.js
  • @noisewaterphd 当我将“command: npm run dev”更改为--->“command: npm run dev”时,我收到此错误:错误:找不到模块'/usr/app/nodemon'
  • 尝试在单独的 RUN 指令中全局安装 nodemon RUN npm install -g nodemon
  • 你能在主机上使用 Node 和 Nodemon,在 Docker 之外吗?这可能比尝试配置像 Docker 这样的隔离环境要简单得多。可能还看到Nodemon Doesn't Restart in Windows Docker Environment

标签: node.js docker nodemon


【解决方案1】:

我想通了!!!

经过大量的反复试验。它与我的 docker compose 以及 nodemon 中的卷有关。不能 100% 确定为什么任何见解也会有所帮助。

解决方法是改变我的音量

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

到:

- ./api:/usr/src/app

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

【讨论】:

    猜你喜欢
    • 2020-01-07
    • 2018-06-27
    • 2014-12-28
    • 2021-05-16
    • 2021-04-07
    • 2022-11-15
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多