| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- node {
- service_name = "tzy"
- registry = "registry.azure.ipangyou.com/poyi/${service_name}"
-
- stage('source code check out'){
- echo "1. Check out project source ..."
- dir("projdir"){
- git branch: 'master', credentialsId: 'lingxz_git.ipangyou.com', url: 'https://git.ipangyou.com/poyi/tzy-admin.git'
- }
- dir("confdir") {
- git branch: 'master', credentialsId: 'lingxz_git.ipangyou.com', url: 'http://git.ipangyou.com/poyi/deployments.git'
- }
- }
- stage("maven build") {
-
- echo "2. Building java package ..."
- dir("projdir"){
- sh '$MAVEN_HOME/bin/mvn clean package'
- }
- }
-
- stage("docker image build") {
- echo "3. Building docker image: $registry:$BUILD_NUMBER ..."
- dir("projdir"){
- sh '''cat > Dockerfile<<EOF
- FROM openjdk:8-alpine as final
- ADD tzy-admin/target/tzy-admin.jar /app/tzy-admin/target/tzy-admin.jar
- #Minimum heap size set to 128mb as Xms128m, and maximum is set to 512 as Xmx512m - to be configured depending on individual needs of the app
- ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-Xmx4096m","-Dserver.port=80","-jar","/app/tzy-admin/target/tzy-admin.jar", "--spring.config.location=file:/app/configs/application.yml,file:/app/configs/application-druid.yml"]
- EOF
- '''
- def image = docker.build("$registry:$BUILD_NUMBER")
- image.push()
- sh "docker rmi $registry:$BUILD_NUMBER"
- }
- }
-
- stage("deploy") {
-
- dir("confdir") {
- configmap_file = 'tzy-admin-configmap.yaml'
- configmap_env = 'tzy-admin-configmap-env.yaml'
- sh "kubectl create configmap tzy-config --dry-run=client --from-file=./tyz-admin/configmap/ -o yaml > ${configmap_file}"
- sh "kubectl apply -f ${configmap_file}"
- sh "kubectl create configmap tzy-environment --dry-run=client --from-env-file=./tyz-admin/configmap-env -o yaml > ${configmap_env}"
- sh "kubectl apply -f ${configmap_env}"
- }
-
- sh """cat > deployment.yml<<EOF
- apiVersion: apps/v1
- kind: Deployment
- metadata:
- name: tzy-admin
- namespace: default
- spec:
- replicas: 1
- selector:
- matchLabels:
- app: tzy-admin
- release: dev
- template:
- metadata:
- labels:
- app: tzy-admin
- release: dev
- spec:
- imagePullSecrets:
- - name: regcredential
- containers:
- - name: tzy-admin
- image: ${registry}:$BUILD_NUMBER
- command: ["java"]
- args: ["-Djava.security.egd=file:/dev/./urandom","-Xmx4096m","-Dserver.port=80","-jar","/app/tzy-admin/target/tzy-admin.jar", "--spring.config.location=file:/app/configs/application.yml,file:/app/configs/application-druid.yml"]
- ports:
- - name: http
- containerPort: 80
- envFrom:
- - configMapRef:
- name: tzy-environment
- volumeMounts:
- - name: config-volume
- mountPath: /app/configs
- - name: nfs-volume
- mountPath: /app/data
- volumes:
- - name: config-volume
- configMap:
- name: tzy-config
- - name: nfs-volume
- persistentVolumeClaim:
- claimName: tzy-data
- EOF
- """
- sh 'kubectl apply -f deployment.yml'
- }
- }
|