公司是港企,项目都部署在OpenShift上统一管理,因为运行环境为香港网络(外网),配置、中间件等大陆无法直接访问联通。因此在大陆开发时,测试是个很大的问题。为了避免往Git上频繁提交未确定可用的版本,选择用利用OpenShift的ImageStream来部署和测试未完成的临时版本。
直接下载解压oc.exe,配置好环境变量就行。
先登上OpenShift获取登录指令:

他会让你再次登录,登录后直接点击显示token

复制这个oc指令,回到oc客户端执行登录

登录完就可以关掉客户端了。
在pom.xml中配置好OpenShift的相关参数和插件
<profile>
<id>dev-ocp4id>
<properties>
properties>
<build>
<plugins>
<plugin>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-maven-pluginartifactId>
<configuration>
<excludes>
<exclude>
<groupId>org.projectlombokgroupId>
<artifactId>lombokartifactId>
exclude>
excludes>
configuration>
plugin>
<plugin>
<groupId>org.eclipse.jkubegroupId>
<artifactId>openshift-maven-pluginartifactId>
<configuration>
<access>
<namespace>dmg-sitnamespace>
<masterUrl>https://api.ocp.xxxx.com:6443masterUrl>
<apiVersion>v1apiVersion>
access>
configuration>
plugin>
plugins>
build>
profile>
比如这里配置的id是dev-ocp4,OpenShift的命名空间是dmg-sit,url是https://api.ocp.xxxx.com:6443等等。
比如原本的版本名是1.2.1-SNAPSHOT
<groupId>com.xxx.dmggroupId>
<artifactId>dmg-xxx-apiartifactId>
<version>1.2.1-SNAPSHOTversion>
<name>dmg-courier-admin-apiname>
<description>DM2.0 API xxx Portaldescription>
改成临时版本名1.2.1-ECHOO-TEST
<groupId>com.xxx.dmggroupId>
<artifactId>dmg-xxx-apiartifactId>
<version>1.2.1-ECHOO-TESTversion>
<name>dmg-courier-admin-apiname>
<description>DM2.0 API xxx Portaldescription>
直接在Terminal执行maven的build指令,注意指定配置的id,这里是dev-ocp4,oc:build是把构建好的项目以镜像的形式推上OpenShift。
mvn -DskipTests -P dev-ocp4 clean package oc:build



找到项目,点进去看tag有没有刚才推的临时版本


切换为临时版本(tag)

保存即可,因为配置了CI/CD,容器会自动部署。
在成功部署之前,不会kill掉原有的那个服务,保持高可用。

当部署测试后没问题,那么就可以把项目的版本改回来,然后推上git。
最后记得把容器的部署版本设置回去。