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

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>yang.zhou@unicorn365.cn</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>yang.zhou@unicorn367.cn</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”即可完成更新。

 

posted @ 2023-09-15 17:52  炫舞风中  阅读(430)  评论(0编辑  收藏  举报