一、场景
二、思路
三、实战
▶ 2.1、项目 jar 包解压获取 lib + config
Stage 1:正常打包获取 jeecg-system-start-3.6.0.jar
Stage 2:解压 获取如下文件
Stage 3:获取 lib + config
▶ 2.2、获取简化版项目jar包
Stage 1:修改pom.xml文件移除lib
Stage 2:打包项目
▶ 2.3 编写dockerfile
▶ 2.4 将文件上传到服务器下
▶ 2.5 创建并运行容器(启动项目)
四、思考
一、场景
-
docker-compose 部署
-
Spring boot 项目几百M
-
问题:如何缩小项目jar包
二、思路
将依赖库提前打包即可
三、实战
▶ 2.1、项目 jar 包解压获取 lib + config
Stage 1:正常打包获取 jeecg-system-start-3.6.0.jar
Stage 2:解压 获取如下文件
jar xvf jeecg-system-start-3.6.0.jar
Stage 3:获取 lib + config
-
将 BOOT-INF 下的 lib 包拿出单独存放
-
将 BOOT-INF\classes 下的 yml 文件存放到 config
▶ 2.2、获取简化版项目jar包
Stage 1:修改pom.xml文件移除lib
<!--方案一:常规Jar部署方案-->
<!-- <build>-->
<!-- <plugins>-->
<!-- <plugin>-->
<!-- <groupId>org.springframework.boot</groupId>-->
<!-- <artifactId>spring-boot-maven-plugin</artifactId>-->
<!-- </plugin>-->
<!-- </plugins>-->
<!-- </build>-->
<!--方案二:JAR分离打包部署-->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<layout>ZIP</layout>
<includes>
<include>
<groupId>nothing</groupId>
<artifactId>nothing</artifactId>
</include>
</includes>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
Stage 2:打包项目
- IDEA中 -- Maven -- 运行 clean -- install -- 获取 jeecg-system-start-3.6.0.jar
▶ 2.3 编写dockerfile
FROM openjdk:8
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
COPY ./config /config
COPY ./lib /lib
ADD jeecg-system-start-3.6.0.jar jeecg-system-start-3.6.0.jar
ENTRYPOINT ["java","-Dloader.path=/lib","-jar","jeecg-system-start-3.6.0.jar"]
▶ 2.4 将文件上传到服务器下
▶ 2.5 创建并运行容器(启动项目)
# 进入上一步上传的目录下
cd /mnt/docker/jeecgboot3.6/
# 启动项目
docker-compose up -d --build
四、思考
jenkins 和 k8s 部署时lib 库如何管理 (后期补上)