javascript
Jib –为Spring Boot应用程序构建docker映像
使用Jib為示例Spring Boot應(yīng)用程序創(chuàng)建docker映像是如此容易,這讓我感到驚喜。
讓我首先將Jib與以前使用的方法進(jìn)行對(duì)比。
我正在使用bmuschko出色的gradle-docker插件創(chuàng)建docker映像。 如果可以訪問(wèn)docker守護(hù)程序以及基于dockerfile或直接Dockerfile的gradle dsl描述,它將使用gradle任務(wù)創(chuàng)建docker鏡像。 就我而言,創(chuàng)建docker映像的任務(wù)如下所示:
task createDockerImage(type: DockerBuildImage) {inputDir = file('.')dockerFile = project.file('docker/Dockerfile')tags = ['sample-micrometer-app:' + project.version] }createDockerImage.dependsOn build我的Dockerfile本身是從“ java:8”基本映像派生的:
FROM java:8 ...gradle-docker-plugin使從gradle創(chuàng)建Docker映像變得很簡(jiǎn)單,但有一個(gè)收獲,即插件需要訪問(wèn)docker守護(hù)程序才能創(chuàng)建映像。 另外,由于基本的“ java:8”映像很大,因此最終docker映像在我的機(jī)器上約為705MB。 同樣,gradle-docker插件也沒(méi)有錯(cuò),但基于我選擇的基礎(chǔ)映像。
現(xiàn)在有了Jib,我要做的就是添加插件 :
plugins {id 'com.google.cloud.tools.jib' version '0.9.6' }配置它以給圖像起一個(gè)名字:
jib {to {image = "sample-micrometer-app:0.0.1-SNAPSHOT"} }就是這樣。 有了可用的本地docker守護(hù)程序,我可以使用以下任務(wù)創(chuàng)建docker映像:
./gradlew jibDockerBuildJib會(huì)自動(dòng)選擇一個(gè)非常輕巧的基礎(chǔ)映像–我的新映像大小僅為150 MB。
如果我可以訪問(wèn)可用的docker注冊(cè)表,則不需要本地docker守護(hù)程序,它可以直接創(chuàng)建映像并將其發(fā)布到docker注冊(cè)表!
Jib gradle插件提供了一個(gè)有趣的任務(wù)–“ jibExportDockerContext”來(lái)導(dǎo)出docker文件,這樣,如果需要,可以使用該Dockerfile運(yùn)行docker build,出于我的目的,我想查看該文件的內(nèi)容,它看起來(lái)像這樣:
FROM gcr.io/distroless/javaCOPY libs /app/libs/ COPY resources /app/resources/ COPY classes /app/classes/ENTRYPOINT ["java","-cp","/app/libs/*:/app/resources/:/app/classes/","sample.meter.SampleServiceAppKt"]總而言之,一個(gè)非常流暢的體驗(yàn)和Jib確實(shí)實(shí)現(xiàn)了其目標(biāo) 。 我的帶有臂架和gradle build集成的示例項(xiàng)目在此處提供 。
翻譯自: https://www.javacodegeeks.com/2018/07/jib-building-docker-image-spring-boot.html
總結(jié)
以上是生活随笔為你收集整理的Jib –为Spring Boot应用程序构建docker映像的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 拌怎么组词 拌组词及释义
- 下一篇: 如何在Spring Boot App中集