Node.js 在Docker上安装节点模块:为什么它们会消失?
我正在尝试创建我的第一个节点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 --
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呃,就是这样。我想我不明白音量是怎么工作的。你能把这个作为答案吗?我会接受的。