node.js - 在 Docker : why are they disappearing? 上安装 Node 模块

标签 node.js npm docker dockerfile

我正在尝试创建我的第一个 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/

相关文章:

node.js - 使用关联进行后续更新

node.js - Ubuntu 下增加最大连接数? (Tsung并发测试)

angular - Angular 14 中的引导安装失败

node.js - 无法使用 npm 安装 phonegap

Angular-CLI 代理无法通过 Docker 连接(ECONNREFUSED)

javascript - 使用 JavaScript 私有(private)方法 :

javascript - NodeJS, Angular 2 |接下来在 Observable 上执行方法

reactjs - 在没有端口的情况下启动 ReactJS 应用程序

docker - 我是追鬼吗? muslc环境中glibc exe中的动态链接库

node.js - 连接两个 docker 容器nodejs和mongodb