pipeline {
agent any
stages {
stage('GIT CHECK') {
steps {
checkout([$class: 'GitSCM', branches: [[name: '$branch']], extensions: [], userRemoteConfigs: [[credentialsId: '47925edc-bd2d-488b-8386-34e1a31c93d3', url: 'http://192.168.1.1/demo/demo.git']]])
checkout([$class: 'GitSCM', branches: [[name: '$bracnh']], doGenerateSubmoduleConfigurations: false, extensions: [[$class: 'CloneOption', noTags: true, shallow: true, depth: 1, honorRefspec:true]], submoduleCfg: [], userRemoteConfigs: [[credentialsId: '47925edc-bd2d-488b-8386-34e1a31c93d3,refspec: '+refs/heads/$branch:refs/remotes/origin/$branch', url: 'http://192.168.1.1/demo/demo.git']]])
}
}
stage('MAVEN BUILD') {
steps {
sh '''
cd /root/.jenkins/workspace/demo
mvn clean package -Dmaven.test.skip=true
mv target/*.jar /data/apps/demo/app.jar
'''
}
}
stage(' DOCKER RUNING') {
steps {
sh '''
JAR_DIR=/data/apps/demo
DOCKER_NAME=demo
DOCKER_FILE="/data/dockerfiles/${DOCKER_NAME}/Dockerfile"
DOCKER_FILE_DIR=/data/dockerfiles/${DOCKER_NAME}
if [ ! -d ${DOCKER_FILE_DIR} ]; then
mkdir -p ${DOCKER_FILE_DIR}
fi
DOCKER_IMAGE=`/usr/bin/docker images | grep ${DOCKER_NAME} | awk -F ' ' '{print $3}'`
if [ -n "${DOCKER_IMAGE}" ]; then
# check docker container
for dc in `/usr/bin/docker ps -a | grep ${DOCKER_NAME} | awk -F " " '{print $1}'`
do
echo "Stop container: ${dc}"
/usr/bin/docker stop ${dc}
# delete while docker container was exists
echo "##Delete exists Container_Id: "${dc}
/usr/bin/docker rm ${dc}
done
# delete while docker image was exists
echo "##Delete exists Image: "${DOCKER_IMAGE}
/usr/bin/docker rmi ${DOCKER_IMAGE}
fi
echo ""
echo "**Init dockerfile start***"
echo "FROM openjdk:8" > ${DOCKER_FILE}
echo 'MAINTAINER "jinyulinlang@126.com"' >> ${DOCKER_FILE}
echo "RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
&& echo "Asia/Shanghai" > /etc/timezone" >> ${DOCKER_FILE}
echo "EXPOSE 8886" >> ${DOCKER_FILE}
echo "ADD *.jar /home/app.jar" >> ${DOCKER_FILE}
echo "VOLUME [/home]" >> ${DOCKER_FILE}
echo "WORKDIR /home" >> ${DOCKER_FILE}
echo "USER root" >> ${DOCKER_FILE}
echo 'ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/home/app.jar","--spring.profiles.active=prod","-Xms512m -Xmx512m -XX:MaxNewSize=256m" ]' >> ${DOCKER_FILE}
cat ${DOCKER_FILE}
echo "**Init dockerfile end."
echo " ...docker build start ...."
cd ${JAR_DIR}
/usr/bin/docker build -f ${DOCKER_FILE} -t ${DOCKER_NAME} .
echo " ...docker build end ...."
echo " ...docker container start ...."
/usr/bin/docker run -it --name ${DOCKER_NAME} -p 8886:8886 -v ${JAR_DIR}/logs:/home/logs -v /usr/local/data:/usr/local/data -d ${DOCKER_NAME}
'''
}
}
}
}