Rancher流水线配置文档
2024-09-01 10:27:09
一、概述
Rancher流水线从逻辑上可以分为两部分,即CI和CD。
CI,可分化为克隆代码、代码打包、发布镜像三部分。
CD,可分为部署镜像。
二、配置
完整的流水线脚本,类似如下:
stages:
- name: build
steps:
- runScriptConfig:
image: maven:3.6.0-jdk-8-alpine
shellScript: mvn clean package
- name: push-image
steps:
- publishImageConfig:
dockerfilePath: ./Dockerfile
buildContext: .
tag: scc/hyperloop-baseapi:${CICD_EXECUTION_SEQUENCE}
pushRemote: true
registry: registry.cn-hangzhou.aliyuncs.com
- name: deploy
steps:
- applyYamlConfig:
path: ./deployment.yaml
timeout: 60
2.1克隆代码
此部分为Rancher强制默认,不可操作。
2.2代码打包
一般根据代码语言执行对应的脚本,比如java+maven是
mvn clean package
2.3发布镜像
在代码根路径下创建Dockerfile文件,内容如下:
# 基于java8
FROM openjdk:8-jdk-slim
# 切换到 /opt目录
WORKDIR /opt
# 将编译的jar拷贝的当前目录
ADD target/baseapi.jar .
# 配置启动命令(两种方式,一种是写死在dockerfile,一种是在rancher上配置,相比前者,后者更灵活)
#CMD java -Dlog.kafka.address=$kafka_address -Dlog.kafka.topic=$kafka_topic -Ddisconf.conf_server_host=$conf_server -Ddisconf.env=$Env -jar /opt/webapps/$jar_file
#CMD java -server -DlogRedisAddress=192.168.1.97 -Dpinpoint.applicationName=baseapi -Dspring.cloud.consul.enabled=true -Dspring.profiles.active=test -Xms512m -Xmx512m -jar /opt/apps/baseapi.jar
注意创建页面配置镜像版本号时,使用环境变量${CICD_EXECUTION_SEQUENCE}
2.4部署镜像
在代码根路径下创建deployment.yaml文件,内容如下:
apiVersion: apps/v1beta2
kind: Deployment
metadata:
name: baseapi
namespace: myapps
spec:
progressDeadlineSeconds: 600
replicas: 1
revisionHistoryLimit: 10
selector:
matchLabels:
workload.user.cattle.io/workloadselector: deployment-myapps-baseapi
strategy:
rollingUpdate:
maxSurge: 1
maxUnavailable: 0
type: RollingUpdate
template:
metadata:
annotations:
cattle.io/timestamp: 2019-01-08T10:18:34Z
creationTimestamp: null
labels:
workload.user.cattle.io/workloadselector: deployment-myapps-baseapi
spec:
containers:
- args:
- java
- -server
- -DlogRedisAddress=192.168.1.97
- -Dspring.cloud.consul.enabled=true
- -Dspring.profiles.active=test
- -jar
- baseapi.jar
image: ${CICD_IMAGE}:${CICD_EXECUTION_SEQUENCE}
imagePullPolicy: Always
livenessProbe:
failureThreshold: 3
httpGet:
path: /health
port: 9700
scheme: HTTP
initialDelaySeconds: 60
periodSeconds: 2
successThreshold: 1
timeoutSeconds: 2
name: baseapi
readinessProbe:
failureThreshold: 3
httpGet:
path: /health
port: 9700
scheme: HTTP
initialDelaySeconds: 60
periodSeconds: 2
successThreshold: 2
timeoutSeconds: 2
resources: {}
securityContext:
allowPrivilegeEscalation: false
capabilities: {}
privileged: false
readOnlyRootFilesystem: false
runAsNonRoot: false
stdin: true
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
tty: true
dnsPolicy: ClusterFirst
imagePullSecrets:
- name: ali
restartPolicy: Always
schedulerName: default-scheduler
securityContext: {}
terminationGracePeriodSeconds: 30
一个快捷的方法就是先手动在Rancher上部署镜像,然后复制yml文件,最后把文件里不必要的信息剔除即可。
最后建议触发方式选择默认的手动,避免因触发导致的镜像更新引发的版本不一致问题(针对测试同学)。
转载于:https://my.oschina.net/shyloveliyi/blog/2999380
最新文章
- SharePoint 2013 设置网站集为”只读”
- C++ 用libcurl库进行http通讯网络编程
- fstat().stat()函数
- Android布局文件-错误
- 使用ownCloud搭建你的个人云服务(ubuntu 14.04 server)(ownCloud对文件不切片,Seafile对文件切片),owncloud没有存储的功能 只能同步 本地删除了服务器也会删除
- dp优化
- 【二叉树->;链表】二叉树结构转双向线性链表结构(先序遍历)
- 【免费讲座IX算法第一阶段】转专业找CS工作“打狗棒法”
- Assembly
- LeetCode 650 - 2 Keys Keyboard
- Java历程-初学篇 Day07 循环结构2 for循环
- JavaScript基本知识点整理(超实用)
- 重构SP5中声明自定义扩展类为API调用
- jquery, jquery-ui, requirejs, bootstrap 的关系理解
- PHP设计模式系列 - 中介者模式
- Leetcode题库——26.删除排序数组中的重复项
- JS获取当前时间并格式化";yyyy-MM-dd HH:mm:ss";
- vscode 配置import @ 路径提示及代码智提
- LVS+keeplived+nginx+tomcat高可用、高性能jsp集群
- 解析C#彩色图像灰度化算法的实现代码详解
热门文章
- Emergency Evacuation(最短下车时间)———(思维)
- preg_replace突然感觉好强大啊
- orm层面的删除的注意事项
- CSS躬行记(5)——渐变
- springboot web项目创建及自动配置分析(thymeleaf+flyway)
- 一、Python3.8的安装
- 在Sping的配置文件中,关于dataSource的配置,就我们常用的方法大致可以有三种:
- 【python实现卷积神经网络】Flatten层实现
- AJ学IOS 之小知识之xcode6自动提示图片插件 KSImageNamed的安装
- AJ学IOS(01) UI之Hello World与加法计算器