Docker:使用nodemon重新加载nodejs应用程序

Jat*_*tin 9 docker dockerfile docker-compose

我有一个你好的,我运行的世界快递应用程序,nodemon以便每当我更改文件时服务器重新启动.

我将应用程序打包为docker镜像.

Dockerfile:

FROM node:6.3.0

RUN mkdir -p /opt/app
WORKDIR /opt/app

COPY . /opt/app

RUN npm install

EXPOSE 3000

CMD ["npm", "start"]
Run Code Online (Sandbox Code Playgroud)

npm startnodemon -L index.js按照package.json中的定义运行

但是,每次我对我的应用程序进行更改时,我都无法构建映像.我还有一个docker-compose.yml文件,我在其中指定了该build选项,但仍然无法让容器重新加载

version: "2"
services:
  rpro:
    build: .
    command: npm start
    ports:
      - "3000:3000"
    volumes:
      - /opt/app
Run Code Online (Sandbox Code Playgroud)

这里是整个回购


如何使用docker容器在文件更改时实现服务器重启?在这种情况下,通常的开发工作流程是什么?

Jat*_*tin 17

啊,这个问题似乎与docker-compose.yml volumes param有关.把它改成

volumes:
  - .:/opt/app
Run Code Online (Sandbox Code Playgroud)

使它工作.它告诉docker .将主机上的应用程序文件夹挂载到/opt/app容器中.

然后docker-compose up,在文件更改的情况下,服务器重新启动.