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.

在流水線模塊選擇設置代碼庫,選擇認證&同步代碼庫,填入申請的Client ID和Client Secret.

然后啟用你需要做CI/CD的代碼庫。

添加compile階段

編輯步驟,使用maven鏡像作為編譯階段的基礎鏡像。使用mvn clean package命令編譯打包SpringBoot工程。

添加publish階段

編輯步驟,將maven打包得到得可執行jar包,構建為docker鏡像

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階段

編輯步驟,部署剛剛構建好的鏡像。

使用的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

完整的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的面板上看就是如下圖所示:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM