Node.js 如何在没有Docker compose的情况下将节点_模块安装到Docker映像中并在以后使用?
如何创建预装了Node.js 如何在没有Docker compose的情况下将节点_模块安装到Docker映像中并在以后使用?,node.js,docker,dockerfile,node-modules,Node.js,Docker,Dockerfile,Node Modules,如何创建预装了node\u模块的docker映像,而没有docker compose 我知道这是可能的(请参阅“安装依赖项”),但仅使用直接Docker是否可能 以下是我(在CI上)努力实现的大致目标: 获得新的提交 当前分支是否有Docker映像?(从DockerHub中提取标签) 是=>自从上一个映像生成以来,package.json是否有更改? 是=>重建映像(执行npm i);使用新标签将其推送到DockerHub 否=>从DockerHub中提取最后生成的映像并使用该映像 否=>
node\u模块的docker映像,而没有docker compose
我知道这是可能的(请参阅“安装依赖项”),但仅使用直接Docker是否可能
以下是我(在CI上)努力实现的大致目标:
获得新的提交
当前分支是否有Docker映像?(从DockerHub中提取标签)
- 是=>自从上一个映像生成以来,
package.json
是否有更改?
- 是=>重建映像(执行npm i
);使用新标签将其推送到DockerHub
master
映像并使用该映像node\u modules
。这就是我需要弄清楚的
这是迄今为止我的
Dockerfile
FROM node:8.1.2-alpine
RUN apk --update add --no-cache git
ADD git-branch /tmp/git-branch
RUN (cd /tmp/git-branch && npm install --silent --progress=false)
RUN mkdir -p /var/app && mv /tmp/git-branch/node_modules /var/app
RUN rm -rf /tmp/git-branch
卷用于将文件/文件夹链接到本地文件系统,为什么不使用“复制”并发布docker映像以在另一个文件系统中使用它?因为当我在“另一个文件系统”中使用它时,当我添加包含源代码的目录时,
node\u modules
将消失。看,这个问题令人困惑。最终目标是什么?要始终使用图像中的node\u模块
,而从不使用已装入的应用程序文件夹?@AndyShinn我编辑了我的问题,希望能让问题更清楚。基本上是的,工作目录中的节点\u模块
应该始终来自容器,而不是来自主机。