zoukankan      html  css  js  c++  java
  • 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.点击立即保存,立即构建

  • 相关阅读:
    第8章 传输层(4)_可靠传输
    第8章 传输层(3)_TCP协议
    第8章 传输层(2)_UDP协议
    第8章 传输层(1)_TCP/UDP协议的应用场景
    【Sqlsever系列】日期和时间
    【SqlServer系列】聚合函数
    【Sqlserver系列】CAST和CONVERT
    【SqlServer系列】AS的用法
    【博客目录】SqlServer篇
    【SqlServer系列】集合运算
  • 原文地址:https://www.cnblogs.com/sishang/p/6511372.html
Copyright © 2011-2022 走看看