我正在尝试创建我的第一个 Node 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
?
最佳答案
对 VOLUME 所做的更改不会持续存在。
Data Volumes
数据卷是一个或多个容器中特别指定的目录,它绕过联合文件系统,为持久或共享数据提供几个有用的功能:
数据卷可以在容器之间共享和重用
直接对数据卷进行更改
更新镜像时不会包含对数据卷的更改
卷一直存在,直到没有容器使用它们
关于node.js - 在 Docker : why are they disappearing? 上安装 Node 模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27694963/