我正在尝试创建我的第一个节点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不存在。我可以看到它在构建步骤中被放置在我预期的位置:
make[1]: Entering directory `/opt/hubot/node_modules/aws2js/node_modules/mime-magic'
所以,我知道Docker文件有点无状态,这就是为什么“apt update&& install”是必要的。但某些东西会被遗忘,否则安装的apt位不会在最后。我如何坚持node_modules
?
答案 0 :(得分:3)
对VOLUME所做的更改不会持久。
数据卷是一个或多个容器中的一个特别指定的目录,它绕过Union文件系统为持久性或共享数据提供了一些有用的功能:
可以在容器之间共享和重用数据卷
直接对数据卷进行更改
更新图片时不会包含对数据卷的更改
卷一直存在,直到没有容器使用它们