我正在尝试为node.js项目设置开发容器,以便将本地源文件与客户端共享(这样我就可以在端口80上通过
dnsmasq
通配符请求到本地域,但我想这与问题无关)。当我在本地进行更改时,容器中的node进程将被重新启动:
< p > < code > Dockerfile :
FROM node:8
# Install app dependencies
RUN npm install -g nodemon
COPY package.json /tmp/package.json
RUN cd /tmp && npm install --production
NODE_PATH=/tmp/node_modules
WORKDIR /app
EXPOSE 8080
EXPOSE 9229
CMD nodemon --inspect index.js
docker-compose.json
(已缩短):
version: '3.3'
services:
app:
build: .
container_name: 'my-app'
restart: unless-stopped
ports:
- 8080:8080
- 9229:9229
volumes:
- .:/app
由于node_modules
已经在Dockerfile
中安装,每当我向packages.json
添加一个包时,就必须手动重新构建容器:
docker-compose stop
docker-compose build
docker-compose up -d
我可以使用inotify来设置此项监视,但我不想停止整个堆栈(包括在其中定义的其他服务)。
是否可能将此逻辑放置在容器内,并在每次更改package.json
时重新运行npm install
?