介紹
Jib 是 Google 開發(fā)的可以直接構(gòu)建 Java 應(yīng)用的 Docker 和 OCI 鏡像的類庫澎现,以 Maven 和 Gradle 插件形式
以開源博客項(xiàng)目My-Blog-layui為例構(gòu)建docker鏡像push到dockerhub,并本地拉取鏡像構(gòu)建容器
- clone項(xiàng)目到本地.
https://github.com/ZHENFENG13/My-Blog-layui
blog.jpg
- pom文件添加jib依賴(用戶名密碼及倉庫名需更換).
<!-- Jib插件 -->
<plugin>
<groupId>com.google.cloud.tools</groupId>
<artifactId>jib-maven-plugin</artifactId>
<version>2.4.0</version>
<configuration>
<!-- 拉取所需的基礎(chǔ)鏡像 - 這里用于運(yùn)行springboot項(xiàng)目 -->
<from>
<image>openjdk:alpine</image>
</from>
<!-- 最后生成的鏡像配置 -->
<to>
<!-- push到阿里云鏡像倉庫悴侵,如果是其它鏡像倉庫褐鸥,將下面地址替換掉即可,ex: `Docker Hub` 的 `docker.io/zhengqing/xxx` -->
<!--<image>registry.cn-hangzhou.aliyuncs.com/xxxxxx/my-blog-layui</image>-->
<image>docker.io/xxxxxx/my-blog-layui</image>
<!-- 鏡像版本號 -->
<tags>
<tag>v1</tag>
</tags>
<auth>
<!--賬號密碼,`Docker Hub`賬號密碼為登錄賬號密碼,阿里云鏡像倉庫賬號為登錄賬號,密碼可去鏡像倉庫修改固定密碼或獲取臨時密碼-->
<username>xxxxxx</username>
<password>xxxxxx</password>
</auth>
</to>
<container>
<!--啟動application-->
<mainClass>com.site.blog.MyBlogApplication</mainClass>
</container>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>build</goal>
</goals>
</execution>
</executions>
</plugin>
-
本地構(gòu)建并push鏡像到dockerhub.
build.jpg
-
成功如下圖,并登錄dockerhub查看鏡像.
duckerhub.jpg
- 本地拉取鏡像(xxxxxx為倉庫名)
docker pull xxxxxx/my-blog-layui
pull.jpg
- 運(yùn)行鏡像并測試(xxxxxx為倉庫名)
docker run -p 8080:28084 --name mybloglayui xxxxxx/my-blog-layui
//-d 后臺運(yùn)行,-p端口映射,--name容器命名
docker run -d -p 8080:28084 --name mybloglayui xxxxxx/my-blog-layui
run.png
- 查看運(yùn)行中鏡像
docker ps
ps.png
-
本地訪問localhost:8080如圖啟動成功
localhost.png
注意:
- my-blog-layui項(xiàng)目需在application.yml中配置數(shù)據(jù)庫連接信息,需自建數(shù)據(jù)庫my_blog_db并初始化my_blog_db.sql文件
- gradle項(xiàng)目同理添加配置可構(gòu)建,配置如下:
plugins {
id 'com.google.cloud.tools.jib' version '2.4.0'
}
jib.to.image = 'docker.io/xxxxxx/my-blog-layui'
jib.to.auth.username = 'xxxxxx'
jib.to.auth.password = 'xxxxxx'
jib.to.tags = ['v1']
jib.container.mainClass = 'com.site.blog.MyBlogApplication'
- 測試gradle方式可用halo項(xiàng)目測試
https://github.com/halo-dev/halo