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 !
在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: jjenkins是一个流行的自动化构建工具。Spring Boot是一个快速开发Web应用程序的框架。Docker是一个容器化平台,可以将应用程序和其依赖项打包到一个独立的包中,并运行在任何支持Docker的系统中。 在使用jjenkins构建Spring BootDocker镜像时,需要将以下步骤考虑到: 1. 创建Dockerfile,Dockerfile是用于构建Docker镜像的脚本文件。在Dockerfile中需要指定镜像的基础操作系统及安装Java和Spring Boot的依赖项等。 2. 在jjenkins中设置Docker构建,为了将应用程序打包成Docker镜像,需要在jjenkins中安装Docker插件,并将Docker作为构建的独立环境。在配置完Docker插件之后,需要设置Docker构建,将Dockerfile设置为构建镜像的脚本文件。 3. 推送到Docker Registry,当Docker镜像构建完成之后,需要将Docker镜像推送到Docker Registry中。这可以让其他人获取此镜像,并部署到其他机器上。 总之,在使用jjenkins构建Spring BootDocker镜像时需要注意构建环境的设置、Dockerfile的编写、Docker构建的配置和镜像的推送。这些步骤的正确操作可以确保Docker镜像的顺利构建和部署。 ### 回答2: Jenkins是一个流行的自动化持续集成工具,而Spring Boot是一个基于Java的开源框架,而Docker则是一个轻量级的应用容器化工具。在构建Spring Boot Docker方面,Jenkins可以享受到其强大的配置和编排功能,能够轻松地为Spring Boot应用程序构建并推送Docker容器镜像。 首先,将Spring Boot应用程序应该打包成jar文件,Jenkins可以使用Maven或Gradle等构建工具实现这一点。然后,需要在Jenkins中安装Docker插件,以便可以使用Docker构建和推送镜像。接下来要做的是,设置Jenkins的构建阶段,其中包括将代码从代码仓库中拉取下来,执行构建脚本,打包jar文件,构建Docker镜像以及将镜像推送到Docker仓库。 在构建Docker镜像阶段,需要编写Dockerfile文件来设置容器镜像实例的环境变量、映射端口、安装依赖项等。然后,利用Docker命令构建和推送镜像,Jenkins可以使用docker build和docker push命令来实现此目的。建议使用容器注册中心来存储镜像,例如Docker Hub或私有设置的Docker Registries。 最后,可以利用Docker Compose或者Kubernetes进行部署,以便可以轻松部署多个容器实例,并通过负载均衡器进行流量分发。此外,Jenkins还可以通过与DevOps工具集实现无缝集成,例如JIRA、SonarQube以及GitHub。这些工具的整合可以给你的团队带来更高效、更快速的开发流程,实现自动化交付,并减少开发成本和时间。 ### 回答3: jjekins是一个流行的部署工具,而Spring Boot是一个流行的Java开发框架,Docker是一个流行的容器化平台。结合使用这三者可以带来很多好处。 首先,在使用jjekins构建Spring Boot应用时,我们需要编写自动化构建脚本,这样jjekins就可以在每次提交代码时自动检测并构建应用。通过使用Docker,我们可以将这个应用打包进一个容器中,并在任何地方部署这个应用,而不需要像传统的应用开发那样需要为特定的操作系统和部署环境编写不同的代码。 其次,Docker还可以帮助我们管理依赖项。Spring Boot应用通常需要依赖许多库和框架,这些依赖关系可能会相互冲突或与操作系统之间存在兼容性问题。但是,使用Docker,我们可以将所有所需依赖项打包在一个容器中,并确保这些依赖项与运行环境相兼容。 另外,使用Docker也可以轻松地进行应用的水平扩展。由于Docker容器是轻量级的,它可以启动和停止非常迅速,因此我们可以很容易地启动许多相同的容器实例,以应对高负载和流量峰值。 总之,通过使用jjekins构建Spring Boot应用并使用Docker容器化部署,我们可以获得很多好处,例如自动化构建、依赖项管理及水平扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值