| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- 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/tyz-admin/dev") {
- configmap_file = 'configmap.yaml'
- configmap_env = 'configmap-env.yaml'
- sh "kubectl create configmap tzy-config --dry-run=client --from-file=./configmap/ -o yaml > ${configmap_file}"
- sh "kubectl apply -f ${configmap_file}"
- sh "kubectl create configmap tzy-environment --dry-run=client --from-env-file=./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","-Xmx2048m","-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'
- }
- }
|