Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- sh '''
- echo '# Building Docker container with embedded WAR unless TOMCAT_WAR_DEPLOY_ENABLED is set'
- if [[ $TOMCAT_WAR_DEPLOY_ENABLED == "true" ]]
- then
- echo 'We will not build a docker image'
- else
- cat <<EOF >> Dockerfile
- FROM docker.servoy.com/alpine-tomcat:${BASE_TOMCAT_IMAGE}
- COPY ROOT.war /tmp/ROOT.war
- ENV SOL_PASS "${SERVOY_DEFAULT_PASSWORD}"
- EXPOSE 8080
- ENTRYPOINT ["supervisord", "--nodaemon"]
- EOF
- # Check if parameter MULTI_SOLUTION_NAME is defined, required for Kubernetes Tomcat Deployment
- # Required naming convention for parameter: lowercases, no special characters
- if [[ -z $MULTI_SOLUTION_NAME ]]
- then
- docker build . -t registry.core.servoy-cloud.eu:5000/${KUBE_SCOPE}-eu-namespace/alpine-tomcat-${KUBE_SCOPE}-war-${BTYPE}:${BUILD_ID}
- docker tag registry.core.servoy-cloud.eu:5000/${KUBE_SCOPE}-eu-namespace/alpine-tomcat-${KUBE_SCOPE}-war-${BTYPE}:${BUILD_ID} \
- registry.core.servoy-cloud.eu:5000/${KUBE_SCOPE}-eu-namespace/alpine-tomcat-${KUBE_SCOPE}-war-${BTYPE}:latest
- docker login --username=jenkins-$KUBE_SCOPE --password=$PORTUS_PASSWORD registry.core.servoy-cloud.eu:5000/$KUBE_SCOPE-eu-namespace
- docker push registry.core.servoy-cloud.eu:5000/${KUBE_SCOPE}-eu-namespace/alpine-tomcat-${KUBE_SCOPE}-war-${BTYPE}:${BUILD_ID}
- docker push registry.core.servoy-cloud.eu:5000/${KUBE_SCOPE}-eu-namespace/alpine-tomcat-${KUBE_SCOPE}-war-${BTYPE}:latest
- # Parameter K8S_CONTEXT if set to US will update Docker Image of Tomcat Deployment in US cluster
- # if not set, it will update Docker Image of Tomcat Deployment in EU cluster
- echo '# Updating Kubernetes deployment with latest container version'
- if [[ -z $K8S_CONTEXT ]]
- then
- kubectl set image deployment tomcat-${BTYPE}-${KUBE_SCOPE} \
- tomcat=registry.core.servoy-cloud.eu:5000/${KUBE_SCOPE}-eu-namespace/alpine-tomcat-${KUBE_SCOPE}-war-${BTYPE}:${BUILD_ID}
- else
- kubectl --context=us-east-1a.servoy-cloud.com set image deployment tomcat-${BTYPE}-${KUBE_SCOPE} \
- tomcat=registry.core.servoy-cloud.eu:5000/${KUBE_SCOPE}-eu-namespace/alpine-tomcat-${KUBE_SCOPE}-war-${BTYPE}:${BUILD_ID}
- fi
- else
- docker build . -t registry.core.servoy-cloud.eu:5000/${KUBE_SCOPE}-eu-namespace/alpine-tomcat-${KUBE_SCOPE}-war-${BTYPE}-${MULTI_SOLUTION_NAME}:${BUILD_ID}
- docker tag registry.core.servoy-cloud.eu:5000/${KUBE_SCOPE}-eu-namespace/alpine-tomcat-${KUBE_SCOPE}-war-${BTYPE}-${MULTI_SOLUTION_NAME}:${BUILD_ID} \
- registry.core.servoy-cloud.eu:5000/${KUBE_SCOPE}-eu-namespace/alpine-tomcat-${KUBE_SCOPE}-war-${BTYPE}-${MULTI_SOLUTION_NAME}:latest
- docker login --username=jenkins-${KUBE_SCOPE} --password=${PORTUS_PASSWORD} registry.core.servoy-cloud.eu:5000/${KUBE_SCOPE}-eu-namespace
- docker push registry.core.servoy-cloud.eu:5000/${KUBE_SCOPE}-eu-namespace/alpine-tomcat-${KUBE_SCOPE}-war-${BTYPE}-${MULTI_SOLUTION_NAME}:${BUILD_ID}
- docker push registry.core.servoy-cloud.eu:5000/${KUBE_SCOPE}-eu-namespace/alpine-tomcat-${KUBE_SCOPE}-war-${BTYPE}-${MULTI_SOLUTION_NAME}:latest
- echo '# Updating Kubernetes deployment with latest container version'
- if [[ -z $K8S_CONTEXT ]]
- then
- kubectl set image deployment tomcat-${BTYPE}-${MULTI_SOLUTION_NAME}-${KUBE_SCOPE} \
- tomcat=registry.core.servoy-cloud.eu:5000/${KUBE_SCOPE}-eu-namespace/alpine-tomcat-${KUBE_SCOPE}-war-${BTYPE}-${MULTI_SOLUTION_NAME}:$BUILD_ID
- else
- J_POD=$(kubectl get pods | grep -i jenkins | awk {'print $1'})
- kubectl cp $J_POD:/var/lib/jenkins/kube /tmp/
- kubectl --kubeconfig=/tmp/config_${K8S_CONTEXT} --context=us-east-1a.servoy-cloud.com set image deployment tomcat-${BTYPE}-${MULTI_SOLUTION_NAME}-${KUBE_SCOPE} \
- tomcat=registry.core.servoy-cloud.eu:5000/${KUBE_SCOPE}-eu-namespace/alpine-tomcat-${KUBE_SCOPE}-war-${BTYPE}-${MULTI_SOLUTION_NAME}:${BUILD_ID}
- fi
- fi
- fi'''
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement