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

Node.js 在Docker上安装节点模块:为什么它们会消失?,node.js,npm,docker,dockerfile,Node.js,Npm,Docker,Dockerfile,我正在尝试创建我的第一个节点Docker映像。这是给丈夫的。以下是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 --

我正在尝试创建我的第一个节点Docker映像。这是给丈夫的。以下是
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
问题在于,构建步骤结束后,节点_模块不存在。在构建步骤中,我可以看到它被放置在我期望的位置:

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

所以,我知道Docker文件有点无状态,这就是为什么“apt更新和安装”是必要的。但是有些东西会落在后面,否则安装的apt位将不会在最后出现。如何持久化
节点\u模块

对卷所做的更改不会持久化

数据卷是一个或多个容器内的特殊指定目录,它绕过Union文件系统,为持久或共享数据提供了几个有用的功能:

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

直接对数据卷进行更改

更新图像时,将不包括对数据卷的更改


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

对卷所做的更改不会持续存在

数据卷是一个或多个容器内的特殊指定目录,它绕过Union文件系统,为持久或共享数据提供了几个有用的功能:

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

直接对数据卷进行更改

更新图像时,将不包括对数据卷的更改


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

对卷所做的更改不会持续存在

数据卷是一个或多个容器内的特殊指定目录,它绕过Union文件系统,为持久或共享数据提供了几个有用的功能:

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

直接对数据卷进行更改

更新图像时,将不包括对数据卷的更改


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

对卷所做的更改不会持续存在

数据卷是一个或多个容器内的特殊指定目录,它绕过Union文件系统,为持久或共享数据提供了几个有用的功能:

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

直接对数据卷进行更改

更新图像时,将不包括对数据卷的更改


卷会一直存在,直到没有容器使用它们为止

请尝试删除卷声明并进行一次尝试@用户2105103呃,就是这样。我想我不明白音量是怎么工作的。你能把这个作为答案吗?我会接受它。尝试删除卷声明并尝试一下@用户2105103呃,就是这样。我想我不明白音量是怎么工作的。你能把这个作为答案吗?我会接受它。尝试删除卷声明并尝试一下@用户2105103呃,就是这样。我想我不明白音量是怎么工作的。你能把这个作为答案吗?我会接受它。尝试删除卷声明并尝试一下@用户2105103呃,就是这样。我想我不明白音量是怎么工作的。你能把这个作为答案吗?我会接受的。