Kubernetes 实战 - Spring Boot使用jib打包Docker镜像至私服

在Spring Boot项目中使用jib-maven-plugin或jib-gradle-plugin打包Docker镜像并将其推送到私有仓库(例如Harbor)的过程如下:

以Maven为例:

  1. 添加jib插件依赖
    在项目的pom.xml文件中添加jib-maven-plugin的依赖和配置。
<project>
    ...
    <build>
        <plugins>
            <plugin>
                <groupId>com.google.cloud.tools</groupId>
                <artifactId>jib-maven-plugin</artifactId>
                <version>3.x.x</version> <!-- 使用最新稳定版本 -->
                <configuration>
                    <from>
                        <image>adoptopenjdk:11-jre-hotspot</image> <!-- 基础镜像 -->
                    </from>
                    <to>
                        <image>${your-repo-url}/${project.artifactId}:${project.version}</image> <!-- 目标镜像及标签 -->
                    </to>
                    <container>
                        <ports>
                            <port>8080</port> <!-- 暴露端口 -->
                        </ports>
                        <!-- 其他容器配置如环境变量、用户、工作目录等 -->
                    </container>
                    <!-- 配置私有仓库认证信息 -->
                    <auth>
                        <username>your-username</username>
                        <password>your-password</password> <!-- 或者通过maven设置加密 -->
                    </auth>
                </configuration>
            </plugin>
        </plugins>
    </build>
    ...
</project>
  1. 配置私有仓库认证
    jib支持多种方式配置认证信息,对于私有仓库,通常可以通过以下方式之一:

    • 直接在pom.xml中填写用户名和密码(不推荐,因为安全性问题)。
    • 使用.m2/settings.xml文件中的服务器配置进行认证,例如:
    <settings>
        ...
        <servers>
            <server>
                <id>your-repo-id</id>
                <username>your-username</username>
                <password>your-password</password>
            </server>
        </servers>
        ...
    </settings>
    

    然后在jib.to.image中引用这个ID,如 <image>your-repo-id/${project.artifactId}:${project.version}</image>

  2. 构建并推送镜像
    执行以下命令构建并推送Docker镜像到私有仓库。

mvn clean package jib:build
  1. 注意
    对于Harbor或其他支持Docker Registry V2协议的私有仓库,确保URL正确无误,并且如果需要HTTPS连接,还需确保SSL证书被信任。另外,部分私有仓库可能需要额外配置,如登录凭证或安全策略等。

以Gradle为例:

对于Gradle项目,类似地,在build.gradle中配置jib插件:

plugins {
    id 'com.google.cloud.tools.jib' version '3.x.x'
}

jib {
    from {
        image = 'adoptopenjdk:11-jre-hotspot'
    }
    to {
        image = "your-repo-url/${project.name}:${project.version}"
    }
    container {
        ports = ['8080']
    }
    // 可以选择在本地gradle.properties文件中存储凭证
    credentials {
        username = project.property('dockerRegistryUsername')
        password = project.property('dockerRegistryPassword')
    }
}

然后,你可以在终端中运行以下命令来构建和推送镜像:

./gradlew jib

同样,请根据实际的私有仓库要求调整认证和配置细节。

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值