专业的编程技术博客社区

网站首页 > 博客文章 正文

13、构建jenkins/Docker持续集成JAVA环境

baijin 2024-09-23 03:50:49 博客文章 5 ℃ 0 评论

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、查看结果


Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表