Maven插件jib构建SpringBoot Docker镜像并运行

使用 Maven 插件 jib 将 SpringBoot Demo 项目打包成docker镜像,推送到阿里云容器镜像服务仓库,在客户端使用docker拉取镜像并运行Demo项目

前置条件

开通阿里云容器镜像服务,个人实例免费

0:在产品与服务列表找到容器镜像服务
dd

1:创建个人实例
在这里插入图片描述

2:进入个人实例

可以看到个人版的容器镜像服务对仓库数量和命名空间有一定的数量限制,根据左边导航菜单可以进入镜像仓库、命名空间和创建访问凭证等;概述面板有个人实例的公网地址,下文会用到
在这里插入图片描述

3:创建命名空间

建议开启自动创建仓库开关,开启后,可以在控制台仓库不存在的情况下,直接推送,系统会自动创建对应的仓库;注意仓库类型,可以选择公开或者私有
在这里插入图片描述

4:设置访问凭证

可以设置固定密码作为访问凭证
在这里插入图片描述

创建项目

使用 SpringBoot 快速构建 Demo 项目

0:创建项目
在这里插入图片描述

1:选择依赖

SpringBoot 版本使用2.5.4,勾选 Spring Web 依赖,点击 Finish 完成创建
在这里插入图片描述

2:整体结构
在这里插入图片描述

3:开始项目

在项目pom.xml文件中加入 Maven jib 插件,并配置自己的镜像仓库信息,账号是阿里云登录账号,密码为上文设置的固定密码

<plugin>
    <groupId>com.google.cloud.tools</groupId>
    <artifactId>jib-maven-plugin</artifactId>
    <version>3.0.0</version>
    <configuration>
        <from>
            <image>openjdk:alpine</image>
        </from>
        <to>
            <!--个人实例的公网地址+命名空间+仓库名称,注意修改!!!-->
            <image>registry.cn-hangzhou.aliyuncs.com/liuuuu/${project.artifactId}</image>
            <tags>
                <tag>${project.version}</tag>
            </tags>
            <auth>
                <username>账号</username>
                <password>密码</password>
            </auth>
        </to>
    </configuration>
</plugin>

创建 demo 测试 api,之后部署成功后可以通过 http://ip:port/demo 进行访问

/**
 * @author liujiazhong
 */
@RestController
@SpringBootApplication
public class DemoDockerApplication {
    public static void main(String[] args) {
        SpringApplication.run(DemoDockerApplication.class, args);
    }
    @GetMapping("demo")
    public String demo() {
        return "hello docker !";
    }
    
}

端口配置 8085,至此 Demo 项目准备完成
dd

构建镜像

在这里插入图片描述

执行成功
在这里插入图片描述

双击进行构建
在这里插入图片描述

构建成功
在这里插入图片描述

查看镜像

在镜像仓库里找到 demo 仓库,点击进入
在这里插入图片描述

在镜像版本中可以看到刚刚最新提交的版本
在这里插入图片描述

运行服务

0:拉取镜像

# 拉取刚刚推送到仓库的最新镜像
docker pull registry.cn-hangzhou.aliyuncs.com/liuuuu/dem

在这里插入图片描述

1:运行

docker run -d -p 8085:8085 --rm --name demo registry.cn-hangzhou.aliyuncs.com/liuuuu/demo

在这里插入图片描述

2:验证

在浏览器输入http://ip:8085/demo,出现hello docker !
在这里插入图片描述


版权声明:本文为momo57l原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。