不废话,直接上干货。
确保服务器已经安装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 结束
不懂的可以留言,随时解答。