Rancher流水线配置文档
一、概述
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
Rancher流水线配置文档的更多相关文章
- MYSQL服务器my.cnf配置文档详解
MYSQL服务器my.cnf配置文档详解 硬件:内存16G [client] port = 3306 socket = /data/3306/mysql.sock [mysql] no-auto-re ...
- 转!!Java代码规范、格式化和checkstyle检查配置文档
为便于规范各位开发人员代码.提高代码质量,研发中心需要启动代码评审机制.为了加快代码评审的速度,减少不必要的时间,可以加入一些代码评审的静态检查工具,另外需要为研发中心配置统一的编码模板和代码格式化模 ...
- Hibernate配置文档详解
Hibernate配置文档有框架总部署文档hibernate.cfg.xml 和映射类的配置文档 ***.hbm.xml hibernate.cfg.xml(文件位置直接放在src源文件夹即可) (在 ...
- Java代码规范、格式化和checkstyle检查配置文档
http://www.blogjava.net/amigoxie/archive/2014/05/31/414287.html 文件下载: http://files.cnblogs.com/files ...
- Spring Hibernate4 整合配置文档
1 applicationContext.xml配置文档 <?xml version="1.0" encoding="UTF-8"?><bea ...
- Kerberos主从配置文档
Kerberos主从配置文档 1. Kerberos主从同步机制 在Master上通过以下命令同步数据: kdb5_util dump /var/kerberos/krb5kdc/slave_db ...
- python常用模块-配置文档模块(configparser)
python常用模块-配置文档模块(configparser) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. ConfigParser模块用于生成和修改常见配置文档,当前模块的名称 ...
- azkaban编译安装配置文档
azkaban编译安装配置文档 参考官方文档: http://azkaban.github.io/azkaban/docs/latest/ azkaban的配置文件说明:http://azkaban. ...
- Python学习 :常用模块(四)----- 配置文档
常用模块(四) 八.configparser 模块 官方介绍:A configuration file consists of sections, lead by a "[section]& ...
随机推荐
- python--模块、列表生成式、集合元祖列表
一.导入模块的两种方式 1.直接使用import import 模块名 #调用 模块名.方法名() 2.使用from…import… from 模块名 import 方法名1,方法名2(from 模块 ...
- springboot-mybatis-oracle学习笔记
前言 最近公司的项目是基于 oracle 数据库的,这里记录下 springboot+mybatis+oracle 的踩坑过程. 开发前准备 环境参数 开发工具:IDEA 基础工具:Maven+JDK ...
- 家庭记账本app进度之复选框以及相应滚动条的应用
这次主要是对于android中复选框的相应的操作.以及其中可能应用到的滚动条的相关应用.每一个复选框按钮都要有一个checkBox与之相对应. 推荐使用XML配置,基本语法如下:<CheckBo ...
- Java第二十八天,Lambda表达式
一.函数式编程 1.什么是函数式编程 函数式编程是种编程方式,是一种编程的思维,它属于"结构化编程"的一种,主要思想是把运算过程尽量写成一系列嵌套的函数调用.它的地位等同于面向对象 ...
- scala_spark实践2
参考:jianshu.com/p/9d2d225c1951 监听socket获取数据,代码如下:这里使用nc -lk 9999 在ip为10.121.33.44的机器上发送消息 object Sock ...
- java集合中的一个移除数据陷阱(遍历集合自身并同时删除被遍历数据)
下面是网上的其他解释,更能从本质上解释原因:Iterator 是工作在一个独立的线程中,并且拥有一个 mutex 锁. Iterator 被创建之后会建立一个指向原来对象的单链索引表,当原来的对象数量 ...
- ftl中几个特殊的用法
@ 注意${}为变量的渲染显示,即先计算后打印出来,而<>里面为定义等操作符的定义 ,而首尾2个<>中间部分一般为计算打印部分 @数据模型中如果不是以map数据来封装的,而是直 ...
- web.page.regexp用法(全网唯一)
前言 因为这个东西“web.page.regexp”,差点把自己杀了.一点都不夸张,这将近30度的天气,办公室不开空调,又要闷,还要带着口罩,躁动的很.加上这个鬼东西“web.page.regexp” ...
- 第一天 简单的python认证登陆代码
#!/usr/bin/env python3# -*- coding:utf-8 -*-# name:zzyu welcome = '''-----------welcome to home----- ...
- AJ学IOS(25)UI之触摸事件
AJ分享,必须精品 iOS中的事件 在用户使用app过程中,会产生各种各样的事件;iOS中的事件可以分为3大类型: 响应者对象–UIResponder 在iOS中不是任何对象都能处理事件,只有继承了U ...