首页 > 其他分享 >Docker+harbor+rancher2.6.3部署springboot项目

Docker+harbor+rancher2.6.3部署springboot项目

时间:2023-09-15 18:00:52浏览次数:34  
标签:springboot harbor project 点击 build 镜像 docker rancher2.6

1、在pom的文件中添加以下配置

<build>
    <finalName>${project.artifactId}</finalName>
    <plugins>
        <plugin>
            <groupId>com.spotify</groupId>
            <artifactId>docker-maven-plugin</artifactId>
            <version>1.2.2</version>
            <executions>
                <execution>
                    <id>build-image</id>
                    <!--用户只需执行mvn package ,就会自动执行mvn docker:build和 docker push-->
                    <phase>package</phase>
                    <goals>
                        <goal>build</goal>
                        <goal>push</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <!--与maven settigs中配置的一致-->
                <serverId>my-hub</serverId>
                <registryUrl>http://${docker.registry.url}</registryUrl>
                <!--镜像名称-->
                <imageName>${docker.registry.url}/${docker.namespace}/${project.artifactId}:latest</imageName>
                <!--指定基础镜像jdk1.8-->
                <baseImage>kdvolder/jdk8</baseImage>
                <!--镜像制作人本人信息 -->
                <!--<maintainer>[email protected]</maintainer>-->
                <!--切换到工作目录-->
                <workdir>/opt</workdir>
                <!--${project.build.finalName}.jar是打包后生成的jar包的名字-->
                <entryPoint>["java", "-jar","-Xms256m","-Xmx512m","/${project.build.finalName}.jar"]
                </entryPoint>
                <!--必须配置dockerHost标签(除非配置系统环境变量DOCKER_HOST)-->
                <dockerHost>http://${docker.host}</dockerHost>
                <!-- jar包位置-->
                <resources>
                    <resource>
                        <targetPath>/</targetPath>
                        <!-- target目录下-->
                        <directory>${project.build.directory}</directory>
                        <!--通过jar包名找到jar包-->
                        <include>${project.build.finalName}.jar</include>
                    </resource>
                </resources>
            </configuration>
        </plugin>
     </plugins>   
</build>

docker.registry.url:harbor的访问地址(包含ip:port),镜像推送的仓库地址。

docker.namespace:harbor中的项目,相当于把镜像分配到不同的目录下面,方便管理。

project.artifactId:一般表示当前springboot项目的名称。

docker.host:指定docker主机的地址,相当于当前springboot项目打包之后,将存在于的主机地址(http://127.0.0.1:2375)

2、maven的settings.xml文件配置

在servers标签下面添加如下配置,用于指定访问harbor仓库的用户名密码。

<server>
        <id>my-hub</id>
        <username>admin</username>
        <password>cquissE1</password>
        <configuration>
            <email>[email protected]</email>
        </configuration>
    </server>

此处id标签中的my-hub必须和步骤1中的serverId标签中的值对应,否则推送镜像的时候,将找不到密码。

3、项目打包并推送镜像

由于步骤1设置了执行mvn package的时候,将直接执行mvn docker:build和mvn docker:push,所以当我们打包完成后,将直接生成镜像,并推送到harbor私服。

<executions>
    <execution>
        <id>build-image</id>
        <!--用户只需执行mvn package ,就会自动执行mvn docker:build和 docker push-->
        <phase>package</phase>
        <goals>
            <goal>build</goal>
            <goal>push</goal>
        </goals>
    </execution>
</executions>

推送成功之后,在harbor中查看:

4、rancher配置集群中的全局私服地址

(1)、进入首页之后,点击左上角的☰ ,然后选择管理集群

(2)、选择对应的集群(此时默认集群已经创建好了,这里不要使用local集群,有点问题,具体还不知道为什么),然后点击右边的三点,下拉选择“编辑配置”

(3)、进入页面后,下滑找到“Private Registry”,也就是私服配置的地方。

填写完成之后,下滑到最下面,点击“Save”保存。

5、创建项目和命名空间

(1)、进入首页后,选择步骤4中的集群,并点击。

(2)、进入页面,在左上角点击“项目/命名空间”,然后点击右上角的“创建项目”。

(3)、进入页面,填写项目名称和添加项目成员,然后点击“创建”按钮即可。

(4)、创建成功之后,自动返回到(2)的页面,找到刚创建的项目,点击右边的“创建命名空

这里的项目和命名空间实际上就是将集群划分成不同的模块,进行管理,方便我们进行区分。

6、镜像配置

(1)、选择左边的“工作负载”,然后点击“Deployments”(可以配合上面的的筛选框,选择我们前面步骤创建的命名空间

(2)、然后选择右上角的“创建”,进入镜像配置页面

按照上面的步骤配置完成之后,滑动到最下面,点击“创建”,即可。

(3)、等待拉取镜像,自动部署服务,自动启动服务。

(4)、点击名称,进入pod,查看启动日志

(5)、当需要更新部署的时候,如果镜像名称没有改变,那么只需要点击“Redeploy”即可完成更新。

 

标签:springboot,harbor,project,点击,build,镜像,docker,rancher2.6
From: https://www.cnblogs.com/cq-yangzhou/p/17705632.html

相关文章

  • 解决SpringBoot Async异步方法获取不到Security Context
     SecurityContextHolder.setStrategyName(SecurityContextHolder.MODE_INHERITABLETHREADLOCAL);这样设置的话很不安全,不废话,直接上代码,改造一下AsyncConfig就可以了,线程也安全/***@description:线程池的配置*/@ConfigurationpublicclassAsyncConfig{privates......
  • 【规范】SpringBoot接口返回结果及异常统一处理,这样封装才优雅
    前言......
  • springboot引入rabbitmq
    RabbitMQ是一个开源的消息代理软件,用于处理应用程序之间的消息传递。SpringBoot是一种让Spring开发变得更简单的工具,你可以使用它来快速地创建基于Spring的应用程序。一、如何在SpringBoot中引入RabbitMQ:首先,你需要在项目的pom.xml文件中添加RabbitMQ的依赖。如果你使用的是Maven......
  • SpringBoot解决跨域问题
    一、概述现在企业级的项目大多数都是前后端分离,加之微服务技术已经成熟,在日常的开发中就难免遇到跨域问题。跨域指的是:浏览器不能执行其他网站的脚本,从一个域名的网页去请求另一个域名的资源时,域名、端口、协议任一不同,都是跨域。跨域是由浏览器的同源策略造成的,是浏览器施......
  • SpringBoot拦截器和动态代理有什么区别?
    在SpringBoot中,拦截器和动态代理都是用来实现功能增强的,所以在很多时候,有人会认为拦截器的底层是通过动态代理实现的,所以本文就来盘点一下他们两的区别,以及拦截器的底层实现。1.拦截器拦截器(Interceptor)准确来说在SpringMVC中的一个很重要的组件,用于拦截Controller的请......
  • SpringBoot 自定义starter汇总
    1、SpringBootstarter机制SpringBoot中的starter是一种非常重要的机制,能够抛弃以前繁杂的配置,将其统一集成进starter,应用者只需要在maven中引入starter依赖,SpringBoot就能自动扫描到要加载的信息并启动相应的默认配置。starter让我们摆脱了各种依赖库的处理,需要配置各种信息......
  • SpringBoot打成jar运行后无法读取resources里的文件
    开发一个word替换功能时,因替换其中的内容功能需要word模版,就把word_replace_tpl.docx模版文件放到resources下在开发环境中通过下面方法能读取word_replace_tpl.docx文件,但是打成jar包在linux下运行后无法找到文件了Filefile=ResourceUtils.getFile(ResourceUtils.CL......
  • springboot整合rocketMQ——消费者
    依赖<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/......
  • harbor-私有镜像仓库的离线安装部署
    harbor-私有镜像仓库的离线安装部署最低安装条件:资源最低限度推荐CPU2核4核内存4GB8GB最低软件要求:软件版本描述Dockerengine版本17.06.0-ce+或更高版本有关安装说明,请参阅Docker引擎文档DockerCompose版本1.18.0或更高版本有......
  • 基于springboot学院宿舍管理系统-计算机毕业设计源码+LW文档
    摘要随着信息技术的发展,管理系统越来越成熟,各种企事业单位使用各种类型的管理系统来提高工作效率,从而降低手工劳动的弊端。我国政府一直以来都非常重视教育事业的发展,随着学生人数增加,学校对宿舍学生信息管理也变的困难。因此,高校提出通过开发宿舍管理系统来优化管理方案,对宿舍信......