使用jib-maven-plugin插件打包docker镜像上传到私有镜像库,为了账户安全,需要设置隐藏密码,并且使用rancher来管理镜像的启动

项目前期准备

 在阿里云的容器镜像服务中创建一个镜像仓库,用于部署

如果是使用的rancher,需要在镜像库中添加 阿里云镜像的公网地址

这样配置过后,在rancher里面才可以正常的拉取到上传的docker镜像。

创建好之后,在本地创建maven的环境

设置pom.xml

<plugin>
                <!--
                https://github.com/GoogleContainerTools/jib/tree/master/jib-maven-plugin#example
                -->
                <groupId>com.google.cloud.tools</groupId>
                <artifactId>jib-maven-plugin</artifactId>
                <version>2.4.0</version>
                <configuration>
                    <!-- 相当于 Dockerfile 中的 FROM -->
                    <from>
                        <image>java:8</image>
                    </from>
                    <to>
                        <!--构建镜像名称,这里我使用maven中定义的项目名称-->
                        <image>${docker.registry.url}/${project.name}.jar</image>
<!--                        &lt;!&ndash;私有仓库的账号密码&ndash;&gt;-->
<!--                        <auth>-->
<!--                            <username>${docker.registry.username}</username>-->
<!--                            <password>${docker.registry.password}</password>-->
<!--                        </auth>-->
                        <!--Docker 镜像的 tag 这里使用maven定义的版本号-->
                        <tags>
                            <tag>${project.version}</tag>
                        </tags>
                    </to>
                    <container>
                        <!--jvm内存参数-->
                        <jvmFlags>
                            <jvmFlag>-Xms400m</jvmFlag>
                            <jvmFlag>-Xmx400m</jvmFlag>
                        </jvmFlags>
                        <mainClass>org.poem.PipeApi</mainClass>
                    </container>
                    <!--用没配置安全认证的registry-->
                    <allowInsecureRegistries>true</allowInsecureRegistries>
                </configuration>
            </plugin>

配置maven settings.xml文件

获取master密码(阿里云配置)

使用以下命令可以得到一个master密码,例如得到的加密密码是:{VrVw6/Cg8FYHpfLj8oO/qRbM******************}

mvn --encrypt-master-password <password>

我们需要打开~/.m2/settings-security.xml这个文件(如果没有就手动创建)
添加到标签中,文件内容如下:

<settingsSecurity>
    <master>{VrVw6/Cg8FYHpfLj8oO/qRbM******************}</master>
</settingsSecurity>

如果没有settings-security.xml,需要手动创建

获取server加密密码(rancher用户名和密码)

执行mvn --encrypt-password <password>即可得到一个server密码

mvn --encrypt-password <password>

把这个加密串添加到settings.xml中server节点的password中 例如得到的加密密码是(2Db+TFdWDgQHlN7gBd1PAZHEC****************):

<server>
      <id>deploymentRepo</id>
      <username>admin</username>
      <password>{2Db+TFdWDgQHlN7gBd1PAZHEC****************}</password>
</server>

重点来了

由于使用的是jib-maven-plugin打包,那么当前的设置怎么和插件连接起来,在上面的pom.xml中,我把账户的密码注释掉了,相当于没有在pom里面指定明确的用户名和密码。

使用以下的配置就可以实现和插件的互动

<pluginGroups>
        <!-- pluginGroup | Specifies a further group identifier to use for plugin
            lookup. <pluginGroup>com.your.plugins</pluginGroup> -->
        <pluginGroup>com.google.cloud.tools</pluginGroup>
</pluginGroups>
<!--对应容器仓库权限的账号密码-->
<servers>
        <server>
            <id>registry.cn-hangzhou.aliyuncs.com</id>
            <username>655454321@qq.com</username>
            <password>{2Db+TFdWDgQHlN7gBd1PAZHEC****************}</password>
        </server>
</servers>

2Db+TFdWDgQHlN7gBd1PAZHEC**************** 就是server的加密密码

好了,以上的准备已经完成

构建并提交镜像

使用以下命令开始构建

mvn compile jib:build

最后打包上传和上传完成,在rancher可以直接使用到镜像

在rancher启动镜像

进入rancher的操作界面

点击进入应用,点击添加服务

配置好端口的映射,内存的管理,cpu的管理,目录的映射关系,点击确定就可以启动了

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值