介绍
为了提高项目迭代的速度加速交付产品给客户,我们通常会选择CICD工具来减少人力投入产生的成本,开源的工具比如有成熟的Jenkins,但是本文讲的是阿里云提高的解决方案云效平台,通过配置流水线的形式实现项目的快速部署到服务器或容器平台中
准备工作
01、编写Dockerfile文件可以根据不同的环境,新建不同的Dockerfile文件,比如Dockerfile-PROD
FROM openjdk:17.0.1-jdk
ENV LANG=C.UTF-8
ENV TZ=Asia/Shanghai
ADD target/test-service.jar app.jarCMD ["sh","-c","java -Xmx512m -Xms256m -XX:SurvivorRatio=4 -XX:+UseG1GC -XX:MaxGCPauseMillis=50 -jar -XX:InitiatingHeapOccupancyPercent=70 -Xlog:gc:/var/log/java_gc.log -XX:+PrintGCDetails app.jar --spring.profiles.active=prod"]
02.编写部署ack的yaml文件
apiVersion: apps/v1
kind: Deployment
metadata:name: test-servicenamespace: prod-service labels:app: test-service
spec:replicas: 3selector:matchLabels:app: test-servicetemplate:metadata:labels:app: test-servicespec:containers:- name: test-serviceimage: registry-vpc.cn-shanghai.aliyuncs.com/prod-acr/test-service:${IMAGE-TAG}ports:- containerPort: 8080
# resources:
# limits:
# cpu: "500m"
---
apiVersion: v1
kind: Service
metadata:name: test-servicenamespace: prod-servicelabels:app: test-service
spec:selector:app: test-serviceports:- name: httpprotocol: TCPport: 80targetPort: 8080- name: httpsprotocol: TCPport: 443targetPort: 8080type: NodePort
03.在已有的ACK集群中创建命名空间prod-service
04.在ACR中新建镜像仓库
新建流水线
在云效中新建流水线,如下图所示,主要有三个阶段,分别为拉取源代码(即配置代码仓库)、构建、部署
点击第一个阶段,如下图所示进行编辑代码源及拉取代码默认分支
点击【Java 构建Docker镜像并推送镜像仓库】进行第二个阶段的编辑
如上图所示编写构建命令:mvn -U clean package -pl order-service -am -Dmaven.test.skip=true
如下图所编辑镜像推送ACR的步骤
点击【Kubernetes 发布】进行最后一个阶段部署的操作
其中选择集群连接时,可以按照下图所示进行操作
增加变量标签用于上文中提到的拉取镜像的标签,如下图所示
以上就是所有从代码拉取到构建代码到发布镜像到ACK的过程
验证发布
点击【运行】,运行结果可通过如下图所示的流程图进行详细查看日志