《SpringBoot-2.3容器化技术》系列,旨在和你们一块儿学习实践2.3版本带来的最新容器化技术,让我们的Java应用更加适应容器化环境,在云计算时代依旧紧跟主流,保持竞争力;java
全系列文章分为主题和辅助两部分,主题部分以下:git
辅助部分是一些参考资料和备忘总结,以下:程序员
本次实战用的是普通的SpringBoot工程,若是您不想写代码,源码可在GitHub下载到,地址和连接信息以下表所示:github
名称 | 连接 | 备注 |
---|---|---|
项目主页 | https://github.com/zq2599/blo... | 该项目在GitHub上的主页 |
git仓库地址(https) | https://github.com/zq2599/blo... | 该项目源码的仓库地址,https协议 |
git仓库地址(ssh) | git@github.com:zq2599/blog_demos.git | 该项目源码的仓库地址,ssh协议 |
这个git项目中有多个文件夹,本章的应用在<font color="blue">dockerlayerdemo</font>文件夹下,以下图红框所示:spring
# 指定基础镜像,这是分阶段构建的前期阶段 FROM openjdk:8u212-jdk-stretch as builder # 执行工做目录 WORKDIR application # 配置参数 ARG JAR_FILE=target/*.jar # 将编译构建获得的jar文件复制到镜像空间中 COPY ${JAR_FILE} application.jar # 经过工具spring-boot-jarmode-layertools从application.jar中提取拆分后的构建结果 RUN java -Djarmode=layertools -jar application.jar extract # 正式构建镜像 FROM openjdk:8u212-jdk-stretch WORKDIR application # 前一阶段从jar中提取除了多个文件,这里分别执行COPY命令复制到镜像空间中,每次COPY都是一个layer COPY --from=builder application/dependencies/ ./ COPY --from=builder application/spring-boot-loader/ ./ COPY --from=builder application/snapshot-dependencies/ ./ COPY --from=builder application/application/ ./ ENTRYPOINT ["java", "org.springframework.boot.loader.JarLauncher"]
mvn clean package -U -DskipTests
docker build -t dockerlayerdemo:0.0.1 .
docker run --rm -p 8080:8080 dockerlayerdemo:0.0.1
docker history dockerlayerdemo:0.0.1
至此,SpringBoot-2.3.0.RELEASE官方推荐的镜像构建方式就实践完成了,可是也留下了一些疑问:docker
这些问题留待下一篇文章一块儿深刻研究。shell
官方文档地址:
https://docs.spring.io/spring... ,4.31章节浏览器
本文由博客一文多发平台 OpenWrite 发布!