介绍
Jib 是 Google 开发的可以直接构建 Java 应用的 Docker 和 OCI 镜像的类库,以 Maven 和 Gradle 插件形式
以开源博客项目My-Blog-layui为例构建docker镜像push到dockerhub,并本地拉取镜像构建容器
- clone项目到本地.
https://github.com/ZHENFENG13/My-Blog-layui
- pom文件添加jib依赖(用户名密码及仓库名需更换).
<!-- Jib插件 -->
<plugin>
<groupId>com.google.cloud.tools</groupId>
<artifactId>jib-maven-plugin</artifactId>
<version>2.4.0</version>
<configuration>
<!-- 拉取所需的基础镜像 - 这里用于运行springboot项目 -->
<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>
-
本地构建并push镜像到dockerhub.
-
成功如下图,并登录dockerhub查看镜像.
- 本地拉取镜像(xxxxxx为仓库名)
docker pull xxxxxx/my-blog-layui
- 运行镜像并测试(xxxxxx为仓库名)
docker run -p 8080:28084 --name mybloglayui xxxxxx/my-blog-layui
//-d 后台运行,-p端口映射,--name容器命名
docker run -d -p 8080:28084 --name mybloglayui xxxxxx/my-blog-layui
- 查看运行中镜像
docker ps
-
本地访问localhost:8080如图启动成功
注意:
- my-blog-layui项目需在application.yml中配置数据库连接信息,需自建数据库my_blog_db并初始化my_blog_db.sql文件
- gradle项目同理添加配置可构建,配置如下:
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项目测试
https://github.com/halo-dev/halo