javascript
Jib –为Spring Boot应用程序构建docker映像
使用Jib為示例Spring Boot應用程序創建docker映像是如此容易,這讓我感到驚喜。
讓我首先將Jib與以前使用的方法進行對比。
我正在使用bmuschko出色的gradle-docker插件創建docker映像。 如果可以訪問docker守護程序以及基于dockerfile或直接Dockerfile的gradle dsl描述,它將使用gradle任務創建docker鏡像。 就我而言,創建docker映像的任務如下所示:
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創建Docker映像變得很簡單,但有一個收獲,即插件需要訪問docker守護程序才能創建映像。 另外,由于基本的“ java:8”映像很大,因此最終docker映像在我的機器上約為705MB。 同樣,gradle-docker插件也沒有錯,但基于我選擇的基礎映像。
現在有了Jib,我要做的就是添加插件 :
plugins {id 'com.google.cloud.tools.jib' version '0.9.6' }配置它以給圖像起一個名字:
jib {to {image = "sample-micrometer-app:0.0.1-SNAPSHOT"} }就是這樣。 有了可用的本地docker守護程序,我可以使用以下任務創建docker映像:
./gradlew jibDockerBuildJib會自動選擇一個非常輕巧的基礎映像–我的新映像大小僅為150 MB。
如果我可以訪問可用的docker注冊表,則不需要本地docker守護程序,它可以直接創建映像并將其發布到docker注冊表!
Jib gradle插件提供了一個有趣的任務–“ jibExportDockerContext”來導出docker文件,這樣,如果需要,可以使用該Dockerfile運行docker build,出于我的目的,我想查看該文件的內容,它看起來像這樣:
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"]總而言之,一個非常流暢的體驗和Jib確實實現了其目標 。 我的帶有臂架和gradle build集成的示例項目在此處提供 。
翻譯自: https://www.javacodegeeks.com/2018/07/jib-building-docker-image-spring-boot.html
總結
以上是生活随笔為你收集整理的Jib –为Spring Boot应用程序构建docker映像的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 拌怎么组词 拌组词及释义
- 下一篇: apache mahout_使用Apac