在Docker上安装Node模块:为什么它们会消失?

我正在尝试创build我的第一个节点的Docker镜像。 这是一个hubot。 以下是Dockerfile的基础知识:

 FROM ubuntu:14.04 VOLUME /opt COPY package.json /opt/hubot/ RUN apt-get update && apt-get -y install build-essential nodejs python RUN npm install -g npm WORKDIR /opt/hubot/ RUN npm install --prefix /opt/hubot/ COPY app /opt/hubot/app 

问题是生成步骤结束后,node_modules不存在。 我可以看到它在构build步骤期间被放置在我预期的位置:

 make[1]: Entering directory `/opt/hubot/node_modules/aws2js/node_modules/mime-magic' 

所以,我知道Docker文件有些无状态,这就是为什么“更新&&安装”是必要的。 但是有些东西会被抛在后面,否则安装好的位不会在那里结束。 我如何坚持node_modules

对VOLUME所做的更改不会持续。

数据量

数据卷是绕过联盟文件系统的一个或多个容器内的特定目录,为持久数据或共享数据提供若干有用function:

数据卷可以在容器之间共享和重用

数据量的变化是直接进行的

更新图像时,不会包含对数据量的更改

卷持续存在,直到没有容器使用它们