使用Docker搭建Jenkins到自动构建,自动部署(全过程,避免踩坑版)!

  • Post author:
  • Post category:其他


不废话,直接上干货。

确保服务器已经安装docker容器,

开始  cd home 到home目录下,按照下面步骤构建镜像。

1.新建Dockerfile

touch Dockerfile
vim Dockerfile

2.加入以下内容:

FROM jenkins

USER root

RUN echo '' > /etc/apt/sources.list.d/jessie-backports.list \
  && echo "deb http://mirrors.aliyun.com/debian jessie main contrib non-free" > /etc/apt/sources.list \
  && echo "deb http://mirrors.aliyun.com/debian jessie-updates main contrib non-free" >> /etc/apt/sources.list \
  && echo "deb http://mirrors.aliyun.com/debian-security jessie/updates main contrib non-free" >> /etc/apt/sources.list
#更新源并安装缺少的包
RUN apt-get update && apt-get install -y libltdl7 && apt-get update

ARG dockerGid=999

RUN echo "docker:x:${dockerGid}:jenkins" >> /etc/group 

# 安装 docker-compose 因为等下构建环境的需要
RUN curl -L https://github.com/docker/compose/releases/download/2.176.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

RUN chmod +x /usr/local/bin/docker-compose

3.构建image

docker build . -t auto-jenkins

出现以上 Successfully 内容代表安装Jenkins成功

4.在启动Jenkins时,需要先创建一个Jenkins的配置目录,并且挂载到docker 里的Jenkins目录下

mkdir -p /var/jenkins_home

5.修改目录权限(很重要!)

chown -R 1000 /var/jenkins_home

6.运行 Jenkins

docker run --name jenkins -p 8080:8080 -p 6080:6080 -p 50000:50000 -v /var/run/docker.sock:/var/run/docker.sock  -v $(which docker):/bin/docker -v /mnt:/mnt -v /var/jenkins_home:/var/jenkins_home  -d auto-jenkins

-p 是端口映射 8080 端口映射jenkins的端口,6080是我tomcat项目的端口

-v 是目录挂载,我的项目在linux下的mnt,所以也挂载过去,后面写shell脚本的时候就知道了,不然找不到路径

然后访问

http://<你的ip>:8080

就可以了

第二步  配置jenkins


重点重点


在linux下安装 Git 就可以了 不需要安装maven,在配置jenkins的时候自动安装maven,剩下的jdk docker容器已经有了


在jenkins的全局配置中,也不用配置jdk,只需要配置git就好了 如下图


然后还有个配置点 值得注意


这个是项目的配置信息  只用clean install  不需要加maven或者 mvn前缀了


然后就是配置git仓库地址


Shell脚本


上图中 有个 deploy.sh


这个是要你在 /var/jenkins_home/目录下

touch deploy.sh

vi deploy.sh

内容设置如下

#!/usr/bin/env bash
#编译+部署项目站点
 
#需要配置如下参数
# 输入你的环境下的项目路径
export PROJ_PATH=/var/jenkins_home/workspace/shdc
 
# 输入你的环境上tomcat的全路径
export TOMCAT_APP_PATH=/mnt/shanghai/tomcat_shanghai_6080
 
### base 函数
killTomcat()
{
    #pid=`ps -ef|grep tomcat|grep java|awk '{print $2}'`
    #echo "tomcat Id list :$pid"
    #if [ "$pid" = "" ]
    #then
    #  echo "no tomcat pid alive"
    #else
    #  kill -9 $pid
    #fi
    #上面注释的或者下面的
    cd $TOMCAT_APP_PATH/bin
    sh shutdown.sh
}
cd $PROJ_PATH/shanghai
mvn clean install
 
# 停tomcat
killTomcat
 
# 删除原有工程
rm  $TOMCAT_APP_PATH/webapps/shanghai.war
rm  $TOMCAT_APP_PATH/webapps/shanghai

 
# 复制新的工程到tomcat上
cp $PROJ_PATH/shanghai/target/shanghai.war $TOMCAT_APP_PATH/webapps/
 
cd $TOMCAT_APP_PATH/webapps/
 
# 启动Tomcat
cd $TOMCAT_APP_PATH/
sh bin/startup.sh

有几个文件名,需要改一下

ok 结束

不懂的可以留言,随时解答。