Easypack: JEECG的容器化编译环境快速构建
这篇文章整理一下使用镜像方式进行JEECG编译环境的标准化,并将标准化的编译镜像和脚本放到了easypack上。
JEECG介绍
详细的介绍可以参看如下链接:
- http://www.jeecg.com/
框架构成&编译环境
- 框架主要构成
前端:Angular + NG-Zorro + NG-ALAIN
后端:Spring Boot + Hibernate + MySQL + Redis
注:前端除了Angular还有Vue版,后端除了Spring boot还有Spring MVC版本等
- 编译环境
前端:npm + angular-cli
/data/jeecg-boot/ant-design-jeecg-angular # node -v
v10.15.3
/data/jeecg-boot/ant-design-jeecg-angular # npm -v
6.4.1
/data/jeecg-boot/ant-design-jeecg-angular #
/data/jeecg-boot/ant-design-jeecg-angular # ng --version_ _ ____ _ ___/ \ _ __ __ _ _ _| | __ _ _ __ / ___| | |_ _|/ △ \ | '_ \ / _` | | | | |/ _` | '__| | | | | | |/ ___ \| | | | (_| | |_| | | (_| | | | |___| |___ | |/_/ \_\_| |_|\__, |\__,_|_|\__,_|_| \____|_____|___||___/Angular CLI: 7.3.8
Node: 10.15.3
OS: linux x64
Angular: 7.2.13
... animations, common, compiler, core, forms, platform-browser
... platform-browser-dynamic, routerPackage Version
-----------------------------------------------------------
@angular-devkit/architect 0.13.8
@angular-devkit/build-angular 0.13.8
@angular-devkit/build-optimizer 0.13.8
@angular-devkit/build-webpack 0.13.8
@angular-devkit/core 7.3.8
@angular-devkit/schematics 7.3.8
@angular/cdk 7.3.7
@angular/cli 7.3.8
@angular/compiler-cli 7.2.14
@angular/language-service 7.2.14
@ngtools/webpack 7.3.8
@schematics/angular 7.3.8
@schematics/update 0.13.8
rxjs 6.3.3
typescript 3.2.4
webpack 4.29.0/data/jeecg-boot/ant-design-jeecg-angular #
后端:jdk + maven
/data/jeecg-boot # mvn --version
Apache Maven 3.6.1 (d66c9c0b3152b2e69ee9bac180bb8fcc8e6af555; 2019-04-04T19:00:29Z)
Maven home: /usr/share/maven
Java version: 1.8.0_201, vendor: Oracle Corporation, runtime: /usr/lib/jvm/java-1.8-openjdk/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "4.9.87-linuxkit-aufs", arch: "amd64", family: "unix"
/data/jeecg-boot #
使用Easypack快速构建
前提事项
需要如下前提事项:
- 软件需求:git + docker
- 网络需求:能够联网(maven和yarn或者npm安装时的需要)
Step 1: git clone easypack
liumiaocn:easypack liumiao$ git clone http://github.com/liumiaocn/easypack.git
Cloning into 'easypack'...
warning: redirecting to https://github.com/liumiaocn/easypack.git/
remote: Enumerating objects: 172, done.
remote: Counting objects: 100% (172/172), done.
remote: Compressing objects: 100% (111/111), done.
Receiving objects: 29% (560/1886), 252.01 KiB | 11.00 KiB/s
Receiving objects: 29% (560/1886), 420.01 KiB | 3.00 KiB/s
remote: Total 1886 (delta 69), reused 127 (delta 32), pack-reused 1714
Receiving objects: 100% (1886/1886), 917.55 KiB | 5.00 KiB/s, done.
Resolving deltas: 100% (875/875), done.
liumiaocn:easypack liumiao$
确认使用方法
liumiaocn:easypack liumiao$ cd easypack/jeecg/
liumiaocn:jeecg liumiao$ sh jeecg-mgnt.sh Usage: jeecg-mgnt.sh ACTION TYPEACTION: download|build|deploy|allTYPE: boot|angular|all|bootit(build)|angularit(build)liumiaocn:jeecg liumiao$
执行sh jeecg-mgnt.sh build boot|angular会分别下载前端和后端和后端所需的镜像并进行编译。但建议使用sh jeecg-mgnt.sh build bootit|angularit进行docker中进行操作,因为编译也就一条命令而已,而且过程和进度以及问题更容易确认
Step2: 下载jeecg-boot代码
下载springboot+angular版jeecg源码
liumiaocn:jeecg liumiao$ sh jeecg-mgnt.sh download all
/usr/local/bin/git
## git clone https://gitee.com/dangzhenghui/jeecg-boot
Cloning into 'jeecg-boot'...
remote: Enumerating objects: 3351, done.
remote: Counting objects: 100% (3351/3351), done.
remote: Compressing objects: 100% (2572/2572), done.
remote: Total 3351 (delta 1567), reused 1506 (delta 461)iB/s
Receiving objects: 100% (3351/3351), 5.00 MiB | 441.00 KiB/s, done.
Resolving deltas: 100% (1567/1567), done.
liumiaocn:jeecg liumiao$
Step 3: 启动后端构建容器进行构建
- 启动构建容器
liumiaocn:jeecg liumiao$ sh jeecg-mgnt.sh build bootit
## please use jeecg-mgnt.sh download all first
## enter jeecg-boot docker env :
/data/jeecg-boot # ls
README.md ant-design-jeecg-angular docs shell system
activiti demo pom.xml start
/data/jeecg-boot #
- 使用mvn package进行构建
/data/jeecg-boot # mvn package
[INFO] Scanning for projects...
Downloading from aliyun: http://maven.aliyun.com/nexus/content/groups/public/org/springframework/boot/spring-boot-starter-parent/2.0.3.RELEASE/spring-boot-starter-parent-2.0.3.RELEASE.pom
...省略[INFO] Building jar: /data/jeecg-boot/shell/target/shell-1.0.1.jar
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary for jeecg-boot 1.0.1:
[INFO]
[INFO] jeecg-boot ......................................... SUCCESS [ 0.008 s]
[INFO] system ............................................. SUCCESS [02:00 min]
[INFO] demo ............................................... SUCCESS [ 13.568 s]
[INFO] activiti ........................................... SUCCESS [02:27 min]
[INFO] start .............................................. SUCCESS [ 21.388 s]
[INFO] shell .............................................. SUCCESS [ 8.611 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 05:28 min
[INFO] Finished at: 2019-05-04T09:48:25Z
[INFO] ------------------------------------------------------------------------
/data/jeecg-boot #
- 确认构建结果
/data/jeecg-boot # ls start/target/start-1.0.1.jar
start/target/start-1.0.1.jar
/data/jeecg-boot #
- 在宿主机进行确认
liumiaocn:jeecg liumiao$ ls
jeecg-boot jeecg-mgnt.sh
liumiaocn:jeecg liumiao$ ls jeecg-boot/start/target/start-1.0.1.jar
jeecg-boot/start/target/start-1.0.1.jar
liumiaocn:jeecg liumiao$
注意:为了避免生成大量的无用构建用的容器,使用了--rm参数,所以退出的时候容器会自动被删除
Step 4: 启动后端构建容器进行构建
- 启动构建容器
liumiaocn:jeecg liumiao$ sh jeecg-mgnt.sh build angularit
## please use jeecg-mgnt.sh download all first
## enter jeecg angular docker env:
/data/jeecg-boot/ant-design-jeecg-angular #
- 使用yarn install安装依赖
/data/jeecg-boot/ant-design-jeecg-angular # yarn install
yarn install v1.13.0
...省略
Done in 346.80s.
/data/jeecg-boot/ant-design-jeecg-angular #
- 使用yarn run build进行构建
/data/jeecg-boot/ant-design-jeecg-angular # yarn run build
yarn run v1.13.0
$ npm run color-less && ng build --prod --build-optimizer
...省略
Date: 2019-05-04T12:24:07.251Z
Hash: 03ad1b41615455245f1c
Time: 195174ms
chunk {0} common.b72f5c94f0a2b5358817.js (common) 11.1 kB [rendered]
chunk {1} 1.14a400ce6b622cf59342.js () 93.7 kB [rendered]
chunk {2} runtime.a66eb787a74866d3eaa8.js (runtime) 2.38 kB [entry] [rendered]
chunk {3} main.7988b4eebdf4aadd8250.js (main) 1.75 MB [initial] [rendered]
chunk {4} polyfills.ff3b6780233bc1953f44.js (polyfills) 41 kB [initial] [rendered]
chunk {5} styles.729de6ab62f7983e42d3.css (styles) 525 kB [initial] [rendered]
chunk {6} 6.229e87e49a8af736f26c.js () 205 kB [rendered]
chunk {7} 7.014aec73e640183b0a3a.js () 29.5 kB [rendered]
chunk {8} 8.619a69754856293e3225.js () 21.4 kB [rendered]
chunk {9} 9.5c77308b3eca1ba6e1d6.js () 41 kB [rendered]
chunk {10} 10.cd56ac7d8e73076516e0.js () 12.1 kB [rendered]
chunk {11} 11.6533a0d45f33c99eb841.js () 176 kB [rendered]
chunk {12} 12.59b18565ce0dd69ee9e5.js () 21.3 kB [rendered]
chunk {13} 13.96665f3cf9e382722a20.js () 430 kB [rendered]
chunk {scripts} scripts.bccec99eed536266748d.js (scripts) 1.12 MB [entry] [rendered]WARNING in budgets, maximum exceeded for initial. Budget 2 MB was exceeded by 1.42 MB.
Done in 218.15s.
/data/jeecg-boot/ant-design-jeecg-angular #
- 确认构建结果
/data/jeecg-boot/ant-design-jeecg-angular # ls D:
webapp
/data/jeecg-boot/ant-design-jeecg-angular #
- 在宿主机进行确认
/data/jeecg-boot/ant-design-jeecg-angular # exit
liumiaocn:jeecg liumiao$ cd jeecg-boot/ant-design-jeecg-angular
liumiaocn:ant-design-jeecg-angular liumiao$ ls D:
webapp
liumiaocn:ant-design-jeecg-angular liumiao$ ls D:/webapp
1.14a400ce6b622cf59342.js 3rdpartylicenses.txt assets polyfills.ff3b6780233bc1953f44.js
10.cd56ac7d8e73076516e0.js 6.229e87e49a8af736f26c.js common.b72f5c94f0a2b5358817.js runtime.a66eb787a74866d3eaa8.js
11.6533a0d45f33c99eb841.js 7.014aec73e640183b0a3a.js favicon.ico scripts.bccec99eed536266748d.js
12.59b18565ce0dd69ee9e5.js 8.619a69754856293e3225.js index.html styles.729de6ab62f7983e42d3.css
13.96665f3cf9e382722a20.js 9.5c77308b3eca1ba6e1d6.js main.7988b4eebdf4aadd8250.js
liumiaocn:ant-design-jeecg-angular liumiao$
注意:为了避免生成大量的无用构建用的容器,使用了--rm参数,所以退出的时候容器会自动被删除
Easypack: JEECG的容器化编译环境快速构建相关推荐
- Java编译环境的构建
Java编译环境的构建 一.在环境变量中: classpath C:/Sun/AppServer/jdk/lib/tools.jar;C:/Sun/AppServer/jdk/lib/dt.jar; ...
- 大数据容器化-基于Kubernetes(k8s)构建spark运行环境
Apache Spark 在大数据处理与分析领域,Apache Spark无疑占据着重要地位.它的特点是基于内存计算,支持各类资源管理平台,其中以YARN最为常见,同时又与Hadoop平台集成,在集群 ...
- 嵌入式设备的容器化App
...
- ASP.NET Core应用程序容器化、持续集成与Kubernetes集群部署(一)
上个月15日,上海MVP做了一次线下的技术分享活动,我分享的主题是<快速构建容器化的ASP.NET Core应用程序>,有关这次活动的简报,可以参考这里.另外,我的主题分享的PPT也可以点 ...
- Docker容器化实战第八课 DevOps和CI/CD
22 多阶段构建:Docker 下如何实现镜像多阶级构建? 通过前面课程的学习,我们知道 Docker 镜像是分层的,并且每一层镜像都会额外占用存储空间,一个 Docker 镜像层数越多,这个镜像占用 ...
- 容器云原生DevOps学习笔记——第二期:如何快速高质量的应用容器化迁移
暑期实习期间,所在的技术中台-效能研发团队规划设计并结合公司开源协同实现符合DevOps理念的研发工具平台,实现研发过程自动化.标准化: 实习期间对DevOps的理解一直懵懵懂懂,最近观看了阿里专家带 ...
- go环境搭建_容器化 Go 开发环境的尝试
Go语言中文网,致力于每日分享编码知识,欢迎关注我,会有意想不到的收获! 01 写在前面 昨天上午"起早"到附近的影院看<波西米亚狂想曲>,选的座位比较靠前,最后的二十 ...
- Docker容器化技术教程,24小时快速入门
Docker介绍 Docker简介和安装 Docker是什么 为什么使用Docker 和普通虚拟机的对比 打包.分发.部署 小结 Docker部署的优势 Docker通常用来做什么 重要概念:镜像.容 ...
- Google 正式开源 Jib ,帮助 Java 应用快速容器化
Google 本周宣布开源一款新的 Java 工具 Jib ,旨在让开发者使用他们熟悉的工具更轻松地将 Java 应用程序容器化. 在7月9日发布的博客文章中,Google 软件工程师 Appu Go ...
最新文章
- injectionForXcode代码注入步骤
- python open 打开是什么类型的文件-详解Python中open()函数指定文件打开方式的用法...
- python的6种基本数据类型--字典
- KVM的内存气球技术(balloon)
- 错误:使用printf()打印Hello world时未声明'Hello'/ Text
- cpu使用率 htop显示_Linux CPU占用率监控工具小结
- 第十一届中国开源黑客松+中国程序员节重磅来袭,这里将有你不能错过的精彩。...
- Nodejs基础:路径处理模块path总结
- saltstack高效运维
- 杀毒软件可能令企业用户陷入更大危机
- 比例电磁阀(零)液压知识
- mysql导入access2016_将 Access 2.0 和 Access 95 数据库导入到当前版本
- VMWare Fusion 安装 Centos7操作系统
- less转换css及html里面JS的引入
- 锁定计算机过久电脑自动关机,为什么电脑一锁定就会自动关机
- Python Numpy数组的降序排列 由大到小
- 小程序(十)签到业务流程分析
- linux使用vmware虚拟机玩LOL
- Win7 64位系统USB免驱设备驱动识别失败解决方法
- 如何选择一款最好的硬盘对拷工具