Rancher pipeline 实践

Rancher 2.1针对CI/CD进行了新的升级,带来了更好用的pipeline,这篇文章针对Rancher 2.1版本,讲解如何使用Rancher pipeline来做SpringBoot工程的CI/CD.

演示代码工程准备

首先创建一个SpringBoot的demo工程,push到github上(演示代码工程地址:https://github.com/huangll99/demo)。

Rancher设置代码库

首先需要设置代码仓库的认证,使用github需要创建自己的app,获取Client ID和Client Secret.
926255-20181102151842151-149752687.png
在流水线模块选择设置代码库,选择认证&同步代码库,填入申请的Client ID和Client Secret.
926255-20181102152325626-69523610.png

然后启用你需要做CI/CD的代码库。
926255-20181102151930013-1084256157.png

添加compile阶段

编辑步骤,使用maven镜像作为编译阶段的基础镜像。使用mvn clean package命令编译打包SpringBoot工程。
926255-20181102151959894-1263437384.png

添加publish阶段

编辑步骤,将maven打包得到得可执行jar包,构建为docker镜像
926255-20181102152039977-1605099770.png

dockerfile如下:

FROM 10.3.10.131:5000/gsafety/java:8

MAINTAINER huangll99@126.com
ADD target/demo-0.0.1-SNAPSHOT.jar /app.jar

EXPOSE 8080
ENTRYPOINT ["java","-Xmx300m","-Dserver.port=8080","-jar","app.jar"]

然后推送到镜像仓库,这里使用了自己内部部署得harbor镜像仓库。

添加deploy阶段

编辑步骤,部署刚刚构建好的镜像。
926255-20181102152113553-1714396872.png

使用的deploy.yml如下:

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: demo-deployment
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: demo
        track: stable
    spec:
      containers:
      - name: demo
        image: 10.3.10.131:5000/gsafety/demo:v3
        ports:
        - containerPort: 8080

---
apiVersion: v1
kind: Service
metadata:
  name: demo-svc
spec:
  type: NodePort
  selector:
    app: demo
  ports:
  - protocol: TCP
    port: 8080
    targetPort: 8080

rancher的pileline会在代码工程里创建对应的配置文件.rancher-pipeline.yml
926255-20181102152807358-966663983.png

完整的pipeline配置文件如下:

stages:
- name: compile
  steps:
  - runScriptConfig:
      image: maven:v1
      shellScript: mvn clean package
- name: publish
  steps:
  - publishImageConfig:
      dockerfilePath: ./Dockerfile
      buildContext: .
      tag: gsafety/demo:v3
      pushRemote: true
      registry: 10.3.10.131:5000
    env:
      PLUGIN_DEBUG: "true"
      PLUGIN_INSECURE: "true"
- name: deploy
  steps:
  - applyYamlConfig:
      path: ./deployment.yaml
timeout: 60
branch:
  include:
  - master

从rancher的面板上看就是如下图所示:
926255-20181102154357367-137897746.png

转载于:https://www.cnblogs.com/huangll99/p/9896465.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值