Spring Boot 2.3.X 开始Maven Plugin将支持构建Docker镜像

构建Docker 容器

很高兴的告诉你,在Spring Boot 2.3.x 版本开始, maven plugin将支持将应用程序打包成Docker镜像,无需额外的Dockerfile,只需要一条命令即可,不需要任何改动

mvn spring-boot:build-image
test1.png

构建日志

[INFO] --- maven-jar-plugin:3.2.0:jar (default-jar) @ k8s-demo-app ---
[INFO] Building jar: C:\Users\liangyong\workspace\new-demo\k8s-demo-app\target\k8s-demo-app-0.0.1-SNAPSHOT.jar
[INFO] 
[INFO] --- spring-boot-maven-plugin:2.3.0.M4:repackage (repackage) @ k8s-demo-app ---
[INFO] Replacing main artifact with repackaged archive
[INFO] 
[INFO] <<< spring-boot-maven-plugin:2.3.0.M4:build-image (default-cli) < package @ k8s-demo-app <<<
[INFO] 
[INFO] 
[INFO] --- spring-boot-maven-plugin:2.3.0.M4:build-image (default-cli) @ k8s-demo-app ---
[INFO] Building image 'docker.io/library/k8s-demo-app:0.0.1-SNAPSHOT'
[INFO] 
[INFO]  > Pulling builder image 'docker.io/cloudfoundry/cnb:bionic-platform-api-0.2' 100%
[INFO]  > Pulled builder image 'cloudfoundry/cnb@sha256:a601451579d595760d2678ea030ae938103c4b289e80f377b656a17e65855c59'
[INFO]  > Pulling run image 'docker.io/cloudfoundry/run:base-cnb' 100%
[INFO]  > Pulled run image 'cloudfoundry/run@sha256:bfe49e7d1c2c47d980af9dd684047616db872a982dcb2c5515a960d1a962a599'
[INFO]  > Executing lifecycle version v0.6.1
[INFO]  > Using build cache volume 'pack-cache-3231d9bc1a6c.build'
[INFO] 
[INFO]  > Running detector
[INFO]     [detector]    6 of 13 buildpacks participating
[INFO]     [detector]    org.cloudfoundry.openjdk                   v1.2.14
[INFO]     [detector]    org.cloudfoundry.jvmapplication            v1.1.12
[INFO]     [detector]    org.cloudfoundry.tomcat                    v1.3.18
[INFO]     [detector]    org.cloudfoundry.springboot                v1.2.13
[INFO]     [detector]    org.cloudfoundry.distzip                   v1.1.12
[INFO]     [detector]    org.cloudfoundry.springautoreconfiguration v1.1.11
[INFO] 
[INFO]  > Running analyzer
[INFO]     [analyzer]    Warning: Image "docker.io/library/k8s-demo-app:0.0.1-SNAPSHOT" not found
[INFO] 
[INFO]  > Running restorer
[INFO] 
[INFO]  > Running builder
[INFO]     [builder]     
[INFO]     [builder]     Cloud Foundry OpenJDK Buildpack v1.2.14
[INFO]     [builder]       OpenJDK JRE 8.0.242: Contributing to layer
[INFO]     [builder]         Downloading from https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u242-b08/OpenJDK8U-jre_x64_linux_hotspot_8u242b08.tar.gz
[INFO]     [builder]         Verifying checksum
[INFO]     [builder]         Expanding to /layers/org.cloudfoundry.openjdk/openjdk-jre
[INFO]     [builder]         Writing JAVA_HOME to shared
[INFO]     [builder]         Writing MALLOC_ARENA_MAX to shared
[INFO]     [builder]         Writing .profile.d/active-processor-count
[INFO]     [builder]       Java Security Properties v1.2.14: Contributing to layer
[INFO]     [builder]         Writing JAVA_OPTS to launch
[INFO]     [builder]       Security Provider Configurer v1.2.14: Contributing to layer
[INFO]     [builder]         Writing .profile.d/security-provider-classpath
[INFO]     [builder]         Writing .profile.d/security-provider-configurer
[INFO]     [builder]       Link-Local DNS v1.2.14: Contributing to layer
[INFO]     [builder]         Writing .profile.d/link-local-dns
[INFO]     [builder]       JVMKill Agent 1.16.0: Contributing to layer
[INFO]     [builder]         Downloading from https://java-buildpack.cloudfoundry.org/jvmkill/bionic/x86_64/jvmkill-1.16.0-RELEASE.so
[INFO]     [builder]         Verifying checksum
[INFO]     [builder]         Copying to /layers/org.cloudfoundry.openjdk/jvmkill
[INFO]     [builder]         Writing JAVA_OPTS to shared
[INFO]     [builder]       Class Counter v1.2.14: Contributing to layer
[INFO]     [builder]       Memory Calculator 4.0.0: Contributing to layer
[INFO]     [builder]         Downloading from https://java-buildpack.cloudfoundry.org/memory-calculator/bionic/x86_64/memory-calculator-4.0.0.tgz
[INFO]     [builder]         Verifying checksum
[INFO]     [builder]         Set $BPL_HEAD_ROOM to configure. Default 0
[INFO]     [builder]         Set $BPL_LOADED_CLASS_COUNT to configure. Default 35%!!(MISSING)o(MISSING)f classes
[INFO]     [builder]         Set $BPL_THREAD_COUNT to configure. Default 250
[INFO]     [builder]         Expanding to /layers/org.cloudfoundry.openjdk/memory-calculator
[INFO]     [builder]         Writing .profile.d/memory-calculator
[INFO]     [builder]     
[INFO]     [builder]     Cloud Foundry JVM Application Buildpack v1.1.12
[INFO]     [builder]       Executable JAR: Contributing to layer
[INFO]     [builder]         Writing CLASSPATH to shared
[INFO]     [builder]       Process types:
[INFO]     [builder]         executable-jar: java -cp $CLASSPATH $JAVA_OPTS org.springframework.boot.loader.JarLauncher
[INFO]     [builder]         task:           java -cp $CLASSPATH $JAVA_OPTS org.springframework.boot.loader.JarLauncher
[INFO]     [builder]         web:            java -cp $CLASSPATH $JAVA_OPTS org.springframework.boot.loader.JarLauncher
[INFO]     [builder]     
[INFO]     [builder]     Cloud Foundry Spring Boot Buildpack v1.2.13
[INFO]     [builder]       Spring Boot 2.3.0.M4: Contributing to layer
[INFO]     [builder]         Writing CLASSPATH to shared
[INFO]     [builder]       5 application slices
[INFO]     [builder]       Process types:
[INFO]     [builder]         spring-boot: java -cp $CLASSPATH $JAVA_OPTS com.example.k8sdemoapp.K8sDemoAppApplication
[INFO]     [builder]         task:        java -cp $CLASSPATH $JAVA_OPTS com.example.k8sdemoapp.K8sDemoAppApplication
[INFO]     [builder]         web:         java -cp $CLASSPATH $JAVA_OPTS com.example.k8sdemoapp.K8sDemoAppApplication
[INFO]     [builder]     
[INFO]     [builder]     Cloud Foundry Spring Auto-reconfiguration Buildpack v1.1.11
[INFO]     [builder]       Spring Auto-reconfiguration 2.11.0: Contributing to layer
[INFO]     [builder]         Downloading from https://repo.spring.io/release/org/cloudfoundry/java-buildpack-auto-reconfiguration/2.11.0.RELEASE/java-buildpack-auto-reconfiguration-2.11.0.RELEASE.jar
[INFO]     [builder]         Verifying checksum
[INFO]     [builder]         Copying to /layers/org.cloudfoundry.springautoreconfiguration/auto-reconfiguration
[INFO]     [builder]         Writing CLASSPATH to launch
[INFO] 
[INFO]  > Running exporter
[INFO]     [exporter]    Adding layer 'launcher'
[INFO]     [exporter]    Adding layer 'org.cloudfoundry.openjdk:class-counter'
[INFO]     [exporter]    Adding layer 'org.cloudfoundry.openjdk:java-security-properties'
[INFO]     [exporter]    Adding layer 'org.cloudfoundry.openjdk:jvmkill'
[INFO]     [exporter]    Adding layer 'org.cloudfoundry.openjdk:link-local-dns'
[INFO]     [exporter]    Adding layer 'org.cloudfoundry.openjdk:memory-calculator'
[INFO]     [exporter]    Adding layer 'org.cloudfoundry.openjdk:openjdk-jre'
[INFO]     [exporter]    Adding layer 'org.cloudfoundry.openjdk:security-provider-configurer'
[INFO]     [exporter]    Adding layer 'org.cloudfoundry.jvmapplication:executable-jar'
[INFO]     [exporter]    Adding layer 'org.cloudfoundry.springboot:spring-boot'
[INFO]     [exporter]    Adding layer 'org.cloudfoundry.springautoreconfiguration:auto-reconfiguration'
[INFO]     [exporter]    Adding 6/6 app layer(s)
[INFO]     [exporter]    Adding layer 'config'
[INFO]     [exporter]    *** Images (c7f56cf022f7):
[INFO]     [exporter]          docker.io/library/k8s-demo-app:0.0.1-SNAPSHOT
[INFO]     [exporter]    Reusing cache layer 'org.cloudfoundry.jvmapplication:executable-jar'
[INFO]     [exporter]    Reusing cache layer 'org.cloudfoundry.springboot:spring-boot'
[INFO] 
[INFO] Successfully built image 'docker.io/library/k8s-demo-app:0.0.1-SNAPSHOT'
[INFO] 
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  01:25 min
[INFO] Finished at: 2020-04-18T16:55:10+08:00
[INFO] ------------------------------------------------------------------------

查看构建的镜像

root@yong:~# docker images | grep k8s-demo-app
k8s-demo-app                         0.0.1-SNAPSHOT            c7f56cf022f7        40 years ago        224MB

输出的创建时间有点奇怪,不过是个小bug,不影响使用。 快去试试吧
更多的详细信息参考官方文档

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,367评论 6 512
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,959评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,750评论 0 357
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,226评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,252评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,975评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,592评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,497评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,027评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,147评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,274评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,953评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,623评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,143评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,260评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,607评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,271评论 2 358

推荐阅读更多精彩内容