前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >docker 构建前端项目, 公共 node_modules 镜像

docker 构建前端项目, 公共 node_modules 镜像

作者头像
copy_left
发布2019-12-16 17:50:05
2.9K1
发布2019-12-16 17:50:05
举报
文章被收录于专栏:方球

docker 构建前端项目, 公共 node_modules 镜像

目的
  • 通过docker 快速搭建项目开发环境
  • 防止node_modules 重复安装, 及安装成功率
基础项目结构
  • 宿主机
    • f:/project
      • package.json
      • postcess.config.js
      • ....
  • 容器
    • project
      • package.json
      • postcess.config.js
      • node_modules
      • source
1. 构建基础node环境, 设置共享卷, 设置 NODE_PATH
代码语言:javascript
复制
docker run -it --env NODE_PATH=/project/node_moduels -v /f/project:/project/source  node /bin/bash

// 这里将 f:/project 映射到容器的 /project/source 目录
2. 构建 node_modules
代码语言:javascript
复制
// 拷贝文件 package.json postcss.config.js
cp ./source/package.json ./package.json
cp ./source/postcess.config.json /postcess.config.json

// 构建node_modules
npm i

// 创建 node_modules 软连
ln -s /project/node_modules /project/source/node_modules
3. 创建镜像
代码语言:javascript
复制
// docker commit [容器id] [镜像名称]
docker commit 2df7591d9c08 vue-project/node_modules
测试
代码语言:javascript
复制
// 构建新容器时,需要重新挂载本地卷
docker run -it -v /f/project:/project/source  vue-project/node_modules /bin/bash

// 启动前端项目
cd project/source

yarn serve
总结
  • 将项目源文件通过 volume 挂载到容器中,方便源文件可被随时修改并保存
  • node_modules 与镜像绑定, 通过软连及制定NODE_PATH 的方式共享 node_modules, 保证拉取镜像后可直接使用.
  • 这里为了保证构建及包的正常使用, 将 package.json postcess.config.json 放到 node_modules 同级目录,更新配置时,需要注意文件的同步更新
  • 这里使用的是vue 项目,其他项目思路基本雷同
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • docker 构建前端项目, 公共 node_modules 镜像
    • 目的
      • 基础项目结构
        • 1. 构建基础node环境, 设置共享卷, 设置 NODE_PATH
          • 2. 构建 node_modules
            • 3. 创建镜像
              • 测试
                • 总结
                相关产品与服务
                容器服务
                腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档