| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- node {
- service_name = "tzy-admin"
- registry = "registry.azure.ipangyou.com/poyi/${service_name}"
-
- try{
- 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/application.yml,file:/app/application-druid.yml"]
- EOF
- '''
- def image = docker.build("$registry:$BUILD_NUMBER")
- image.push()
- sh "docker rmi $registry:$BUILD_NUMBER"
- }
- }
-
- stage("deploy") {
-
- HOST = 'docker.hobbystock.cn'
- echo "4. Deploying on server: ${HOST} ..."
- dir('confdir') {
- // put configuration files
- remote = [:]
- remote.name = "name"
- remote.host = "127.0.0.1"
- remote.port = 22100
- remote.allowAnyHosts = true
- remote.failOnError = true
- withCredentials([sshUserPrivateKey(credentialsId: 'root_key_at_hobbystock.cn', usernameVariable:'username', keyFileVariable: 'identity', passphraseVariable: '')]){
- remote.user = username
- remote.identityFile = identity
- sshPut remote: remote, from: 'tyz-admin/configs', into: '.'
- }
- }
-
- // update docker image
- DOCKER_OPTS = "-H tcp://${HOST}:2375 --tlsverify"
- network = "app_network"
- sh "if [ \$(docker ${DOCKER_OPTS} ps -aq --filter name=${service_name}) ]; then docker ${DOCKER_OPTS} rm -f ${service_name};fi"
- EXEC_RUN = """docker ${DOCKER_OPTS} run -d --network ${network} --restart=always -p 80:80 --name ${service_name} \
- -e TZ=Asia/Shanghai -e FLUENTD_ENABLED=true -e FLUENTD_HOST=192.168.33.1 -e FLUENTD_PORT=24225 \
- -v /root/configs/application.yml:/app/application.yml -v /root/configs/application-druid.yml:/app/application-druid.yml \
- -v /root/nfs:/home/tzy \
- ${registry}:${BUILD_NUMBER}"""
- sh "$EXEC_RUN"
- }
- } catch (e) {
- mail to: '81554636@qq.com,xiaozhou.ling@hobbystock.cn,1169705999@qq.com', body: "${e}", subject: "[DEV]error occurs in building tzy-admin:$BUILD_NUMBER"
- throw e
- } finally {
- }
-
- mail to: '81554636@qq.com,xiaozhou.ling@hobbystock.cn,1169705999@qq.com', body: "success", subject: "[DEV]succeed building tzy-admin:$BUILD_NUMBER"
- }
|