使用Jib发布至阿里云容器镜像服务

Jib默认的插件和示例都是国外的容器镜像,在国内访问太慢(或者需要翻墙才可以访问),国内也有很多云服务厂商支持容器镜像服务(例如:阿里云、腾讯云)。

那么我们需要怎么把镜像发布到国内的容器镜像服务呢?

开通阿里云镜像服务

  • 需要先开通阿里云镜像服务
  • 开通成功后,设置Registry登录密码,这个是镜像仓库的密码

点击开通

创建命名空间

需要先创建一个仓库的命名空间。

创建镜像仓库

创建一个项目镜像仓库,我这里是创建是私有仓库,需要账户密码登录才可以访问。

由于通过maven打包,所以这里代码源选择本地仓库,请根据自己情况选择。

maven配置jib

关键配置在于to标签中的配置,详细参数说明请见使用Jib容器化你的Maven项目

1
2
3
4
5
6
7
<to>
<image>registry.cn-shenzhen.aliyuncs.com/wueasy/${project.artifactId}:${project.version}</image>
<auth>
<username>阿里云账号</username>
<password>镜像仓库密码</password>
</auth>
</to>
  • image:配置阿里云创建镜像仓库的地址
  • auth:阿里云镜像仓库的认证配置

完整配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>com.google.cloud.tools</groupId>
<artifactId>jib-maven-plugin</artifactId>
<version>0.9.11</version>
<configuration>
<from>
<image>openjdk:8</image>
</from>
<to>
<image>registry.cn-shenzhen.aliyuncs.com/wueasy/${project.artifactId}:${project.version}</image>
<auth>
<username>阿里云账号</username>
<password>镜像仓库密码</password>
</auth>
</to>
<container>
<jvmFlags>
<jvmFlag>-Xmx512m</jvmFlag>
<jvmFlag>-Xms512m</jvmFlag>
<jvmFlag>-Xss256k</jvmFlag>
<jvmFlag>-XX:MetaspaceSize=128m</jvmFlag>
<jvmFlag>-XX:MaxMetaspaceSize=256m</jvmFlag>
</jvmFlags>
<args>
<arg>wueasy.zk.servers</arg>
<arg>wueasy.localIp</arg>
<arg>spring.profiles.active</arg>
<arg>args</arg>
</args>
</container>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>build</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>