【发布时间】:2021-09-29 12:06:42
【问题描述】:
尽管互联网上有很多 Q/A,但我找不到任何可以解决我在 Docker 中运行简单的 express js 应用程序时不会刷新更改的问题。
这是我的Dockerfile
FROM node:16-alpine3.11
WORKDIR /var/be_core
VOLUME /var/be_core
COPY package*.json ./
RUN npm install
COPY . .
CMD ["npm", "start"]
docker-compose.yml
version: '3.9'
volumes:
be_core_volume:
services:
be_server_core:
ports:
- "9000:3000"
image: jeko/be_server_core
environment:
- BE_SERVER_CORE_PORT=3000
volumes:
- "be_core_volume:/var/be_core"
js服务器,很简单:
const express = require('express');
const app = express();
app.get('/', (req, res) => {
res.send("Hello world");
});
const PORT = process.env.BE_SERVER_CORE_PORT || 3000;
app.listen(PORT, () => {
console.log(`Core server running on internal port : ${PORT}`);
});
命令 npm start 只需运行它
"scripts": {
"start": "nodemon -L ./server.js"
}
如果我将服务器作为 独立 进程(不在 docker 容器内)运行,它可以完美运行。
使用命令 docker-compose up - 相反 - 似乎工作正常,因为它启动了所有内容,但是当更改 server.js 文件中的某些内容时,它不会刷新。
我做错了什么?
【问题讨论】: