1、制作tomcat的基础镜像
[root@node3 tomcat]# ls
Dockerfile jdk1.8.tar.gz server.xml tomcat.tar.gz www
[root@node3 tomcat]# cat Dockerfile
FROM centos:centos6
MAINTAINER caichangen
ADD jdk1.8.tar.gz /usr/local/
ADD tomcat.tar.gz /usr/local/
COPY server.xml /usr/local/tomcat/conf/server.xml
ENV JAVA_HOME=/usr/local/jdk1.8
ENV CLASSPATH=.:$JAVA_HOME/jre/lib/*:$JAVA_HOME/lib/*
ENV PATH=$PATH:$JAVA_HOME/bin
[root@node3 tomcat]# docker build -t 172.16.1.72:5000/tomcat .
[root@node3 tomcat]# docker push 172.16.1.72:5000/tomcat
2、制作tomcat发布dockerfile
[root@node3 tomcat]# ls
Dockerfile www
[root@node3 tomcat]# cat Dockerfile
FROM 172.16.1.72:5000/tomcat:base
MAINTAINER caichangen
ADD www /data/wwwroot
CMD ["sh","/usr/local/tomcat/bin/catalina.sh","run"]
EXPOSE 8080
3、构建docker-compose编排yml文件
[root@node3 ~]# cat /data/jenkins/deploy/lnmp/tomcat/docker-compose.yml
version: "2"
services:
tomcat:
image: tomcat:online
ports:
- "8080:8080"
4、创建jenkins的java项目
5、构建jenkins打包脚本
#!/bin/bash
#Jenkins打包发布脚本
#
BUILD_ID=DontKillMe
date_time=`date +%Y%m%d%H%M%S`
echo "************************************************开*始*打*包************************************************"
if [ ! -z $Reversion ];then
/usr/bin/svn upgrade $WORKSPACE --username cce --password caichangen
/usr/bin/svn --username cce --password caichangen co $SVN_URL@$Reversion $WORKSPACE --force --no-auth-cache
if [ ! -z $Reversion ];then
echo "你回滚的版本为:$Reversion "
fi
else
Reversion=$SVN_REVISION
fi
tar -zvcf $Sites.tar.gz ./*
if [ ! -d /data/sourcecode ];then
mkdir -pv /data/sourcecode
fi
echo "************************************************开*始*备*份************************************************"
mv $Sites.tar.gz /data/sourcecode/${Sites}-${date_time}.tar.gz
echo -n 'Loading'
echo -n '.'
echo -n '.'
echo -n '.'
echo
chown ops:ops /data/sourcecode/ -R
echo "************************************************开*始*发*布************************************************"
sudo -u ops -H bash -x /data/jenkins/scripts/online-latest-java-deploy.sh ${Sites} ${date_time} ${SVN_REVISION}
echo "************************************************发*布*成*功************************************************"
rm -f /data/sourcecode/${Sites}-${date_time}.tar.gz
6、构建发布脚本
[root@node2 ~]# cat /data/jenkins/scripts/online-latest-java-deploy.sh
#!/bin/bash
#线上中转机发布脚本
#
### check
if [ ! -n "$1" ];then
echo "Please enter your file's name. ex: sh online-stable-api-deploy.sh kaopu"
exit 10
fi
name=$1
date_time=$2
reversion=$3
ansible -s 172.16.1.73 -m copy -a "src=/data/sourcecode/${name}-${date_time}.tar.gz dest=/data/source_packet/${name}.tar.gz" && \
ansible 172.16.1.73 -s -a "bash -x /data/jenkins/scripts/online-latest-java-deploy.sh ${name} ${date_time} ${reversion}"
7、构建上线脚本
[root@node3 tomcat]# cat /data/jenkins/scripts/online-latest-java-deploy.sh
#!/bin/bash
#
if [ ! -n "$1" ];then
echo "Please enter your file's name. ex: sh online-stable-api-deploy.sh kaopu"
exit 10
fi
name=$1
date_time=$2
reversion=$3
rm -rf /data/jenkins/deploy/lnmp/tomcat/www/*
tar xvf /data/source_packet/${name}.tar.gz -C /data/jenkins/deploy/lnmp/tomcat/www/
docker build -t tomcat:online /data/jenkins/deploy/lnmp/tomcat
docker-compose -f /data/jenkins/deploy/lnmp/tomcat/docker-compose.yml down
docker-compose -f /data/jenkins/deploy/lnmp/tomcat/docker-compose.yml up -d
8、上传测试代码到svn
9、测试发布
10、查看结果