Jenkins-pipline基于Rancher的CI/CD

环境

  • Jenkins2
  • Rancher
  • Spring cloud

Jenkinsfile

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
node {
withEnv(['TAG=192.168.130.2/ziztour/$JOB_NAME:$BUILD_NUMBER','TAG1=registry.aliyuncs.com/ziztour/$JOB_NAME:$BUILD_NUMBER']) {
stage 'Checkout'
checkout([$class: 'SubversionSCM', additionalCredentials: [], excludedCommitMessages: '', excludedRegions: '', excludedRevprop: '', excludedUsers: '', filterChangelog: false, ignoreDirPropChanges: false, includedRegions: '', locations: [[credentialsId: '4faeed27-fe67-442c-b386-8f1f5bcb6ac5', depthOption: 'infinity', ignoreExternalsOption: true, local: '.', remote: 'http://192.168.1.160/svn/ziztour/service/infrastructure/ziztour-service-eureka/trunk/']], workspaceUpdater: [$class: 'UpdateUpdater']])
stage 'Maven Build'
sh ' /data/apache-maven-3.3.9/bin/mvn clean install '
stage 'Image Build'
sh 'cp target/$JOB_NAME.jar docker/'
dir('docker') {
sh '''
docker build -t $TAG .
'''
}
stage 'Push Image'
dir('docker') {
sh '''
docker push $TAG
'''
}
stage 'Deploy DEV'
dir('docker'){
sh '''
sed -i s/registry.aliyuncs.com/192.168.130.2/g docker-compose.yml
rancher-compose --url http://192.168.130.4:8080 --access-key xxx --secret-key xxx -p ziztour up -p -d -u
rancher-compose --url http://192.168.130.4:8080 --access-key xxx --secret-key xxx -p ziztour up -d -c
'''}
stage 'Deploy Test'
timeout(time: 5, unit: 'DAYS') {
input '是否部署到测试环境?'
}
dir('docker'){
sh '''
sed -i s/registry.aliyuncs.com/192.168.130.2/g docker-compose.yml
rancher-compose --url http://192.168.130.4:8080 --access-key xxx --secret-key xxx -p ziztour up -p -d -u
rancher-compose --url http://192.168.130.4:8080 --access-key xxx --secret-key xxx -p ziztour up -d -c
'''}

Dockerfile

1
2
3
4
5
6
7
From java:7
MAINTAINER ziztour-service-eureka
ADD entrypoint.sh entrypoint.sh
RUN chmod +x /entrypoint.sh && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime -f
EXPOSE 18100
ENTRYPOINT ["./entrypoint.sh"]
ADD ziztour-service-eureka.jar /

entrypoint.sh

1
2
#!/bin/bash
java -jar ziztour-service-eureka.jar

Docker-compose

1
2
3
4
5
6
7
8
9
ziztour-service-eureka:
image: 192.168.130.2/ziztour/ziztour-service-eureka:$BUILD_NUMBER
ports:
- 18100:18100/tcp
labels:
io.rancher.container.pull_image: always
io.rancher.container.hostname_override: container_name
tty: true
stdin_open: true

Rancher-compose

1
2
ziztour-service-eureka:
scale: 1

Jenkins

image

Rancher

image

坚持原创技术分享,您的支持将鼓励我继续创作!