热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

在docker中使node_modules保持最新

如何解决《在docker中使node_modules保持最新》经验,需要怎么解决?

我正在与一个使用Docker和Node构建的repo的团队合作.当其他人安装节点包时,我将git pull这些更改为package.jsonpackage-lock.json.

不过,我不能只运行docker-compose build然后docker-compose up安装这些新的节点包.我必须先docker-compose down -v.这是因为我们使用卷来存储节点模块.我们并不依赖于此,坦率地说,只是将模块存储在docker图像层中.但是,当我们绑定应用程序卷(- .:/appin docker-compose.yml)时,node_modules图像中的文件夹将被遮蔽.

感觉我们对此采取了错误的方法,但这似乎是普遍接受的做法.我们的设置基于" 在Docker中构建节点应用程序的经验教训 "

我们Dockerfile:

FROM node:8.4.0
WORKDIR /app
COPY package.json package-lock.json ./
RUN npm install --loglevel=error --progess=false
COPY . /app/

我们docker-compose.yml:

---
version: '2.1'

services:
  main:
    build:
      context: .
    volumes:
      - .:/app
      - /app/node_modules
    container_name: main
    command: ['node', 'index.js']

我对该问题的理解是,在该docker-compose.yml文件中,该卷- /app/node_modules创建了一个卷,它将节点模块从图像层内部复制到一个卷中,这意味着当我们使用不同的内容再次构建应用程序时package.json,图像会更新但不会更新体积.down音量迫使它从更新的图像重新复制node_modules,这就是为什么有效.如果我的理解不正确,请告诉我:)

我们在AWS ECS中运行,所以不幸的是我们只能使用17.03.2-ce中提供的docker功能(目前没有多级docker文件).


推荐阅读
author-avatar
桃花岛的小米_992
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有