Docker 容器无法在 Express 应用程序上使用 Nodemon 进行热重载

问题描述 投票:0回答:1

Nodemon 不会重新加载容器内容

我的 Dockerfile:

FROM node:14

WORKDIR /app


COPY package.json ./
RUN npm install -g nodemon
RUN npm install

COPY . .

USER node

EXPOSE 3000

CMD ["node", "server.js"]

我的特快申请:

const express = require('express')
const app = express()
const port = 3000

app.get('/', (req, res) => {
  res.send('Testing application!')
})

app.listen(port, () => {
  console.log('test')
})

我希望nodemon使用绑定卷重新加载容器内容。

我的容器:

docker container run -p 3000:3000 -v ${pwd}:/app -v /app/node_modules --name expapp expresstestappimage nodemon server.js
node.js docker containers nodemon
1个回答
0
投票

您需要在此处覆盖入口点。

使用“--entrypoint”选项来执行此操作。

使用“--entrypoint”,你的示例将如下所示

docker container run -p 3000:3000 -v ${pwd}:/app -v /app/node_modules --name expapp —-entrypoint <path-to-nodemon-executable> expresstestappimage <path-to-your-server.js>

参考:

  1. https://docs.docker.com/engine/reference/commandline/container_run/

  2. https://stackoverflow.com/a/41699330/2143128

© www.soinside.com 2019 - 2024. All rights reserved.