longpan 发表于 2017-12-6 11:35:26

Docker学习笔记五:Docker生成jenkins容器,支持Java Web项目持续集成、持续部署

一、创建jenkins容器:
  1.拉取jeknin镜像
  sudo docker pull jenkins
  2.创建一个jenkins目录
  sudo mkdir /jenkins
  3.在jenkins目录下创建一个Dockerfile
  sudo touch Dockerfile
  4.为了在jenkins容器中具有执行sudo命令的权限,在Dockerfile添加如下内容:
  FROM jenkins
USER root
RUN apt-get update && apt-get install -y sudo && rm -rf /var/lib/apt/lists/*
RUN echo "jenkins ALL=NOPASSWD: ALL" >> /etc/sudoers
USER jenkins
  
5.创建新的jenkins镜像
  sudo docker build -t zss/jenkins:1.0 .
  6.创建jenkins容器
  sudo docker run -p 8080:8080 --name jenkins      
  -v /usr/bin/docker:/usr/bin/docker                                          
  -v /var/run/docker.sock:/var/run/docker.sock                                              //将宿主机中docker挂载到jenkins容器中,以便在jenkins容器中执行docker命令
  -v /usr/jdk/jdk1.7.0_25:/usr/java/jdk1.7.0_25                                          //将宿主机中jdk挂载到jenkins容器中
  -v /usr/tomcat/apache-tomcat-7.0.29:/usr/tomcat/apache-tomcat-7.0.29   //将宿主机中tomcat挂载到jenkins容器中
  -v /usr/maven/apache-maven-3.3.9:/usr/maven/apache-maven-3.3.9         //将宿主机中tomcat挂载到jenkins容器中
  zss/jenkins:1.0
  7.在浏览器中输入http://localhost:8080,填写启动jenkins时出现的密码
二、配置jenkins:
  1.安装svn、maven插件

  2.在jenkins中配置jdk、maven如图:

三、配置Java web项目:
  1.创建一个maven风格的test项目

  2.配置test


四、书写Shell脚本来构建Java Web镜像和容器:
  1.在Post Steps目录中选择

  填写如下Shell脚本
  #!/bin/bash
imageId=`sudo docker images|grep -i test|awk '{print $3}'`
echo "Test镜像ID = "$imageId
containId=`sudo docker ps -a |grep -i test|awk '{print $1}'`
echo "Test容器ID = "$containId
project=/var/jenkins_home/workspace/test/src/main/resources/docker
#判断是否存在旧的Test镜像
if test -z "$imageId"
then
   echo "Test镜像不存在"
else
   if test -z "$containId"
   then
         echo "Test容器不存在"
   else
         echo "Test容器将要被执行stop命令"
         sudo docker stop test
         echo "Test容器处于stop状态"
   fi
   echo "旧Test镜像将要被删除"
   sudo docker rmi -f $imageId
   echo "成功删除旧Test镜像"
fi
#Dockerfile所在目录
sudo mv $project/Dockerfile /usr
#切换目录至usr
cd /usr
#将Tms war包拷贝到Dockerfile所在目录下
sudo mv /var/jenkins_home/workspace/test/target/test.war .
echo "Test镜像构建中:------->"
#构建Tms镜像
sudo docker build -t test .
#判断是否存在旧的Tms容器
if test -z "$containId"
then
    echo "Test容器不存在"
else
    echo "旧Test容器将要被删除"
    sudo docker rm -f $containId
    echo "成功删除旧Test容器"
fi
#创建容器
echo "开始创建新Test容器"
sudo docker run -d -p 8088:8080 -v /usr/logs:/usr/tomcat/logs --name test test
echo "新Test容器创建成功"
  2.点击立即保存,立即构建
页: [1]
查看完整版本: Docker学习笔记五:Docker生成jenkins容器,支持Java Web项目持续集成、持续部署