Jenkins+Docker+Git集成平台搭建

一、环境准备

以我本地为例【Jenkins:192.168.132.52           Docker:192.168.10.143】

1、一台运行Jenkins服务的服务器,需安装插件:git plugin、Git Parameter Plug-In、GitLab Plugin、Publish Over SSH、SSH Slaves plugin

2、一台或若干Docker宿主机服务器

3、一台提供Git服务的服务器(直接使用github服务)

二、搭建Docker宿主机

(1)、安装并启动docker

#sudo yum install docker
#sudo service docker start

(2)、创建docker账户、密码

#useradd docker -d /home/docker -s /bin/bash
#echo "docker:docker" | chpasswd

(3)、将docker创建到指定账户下

#mkdir /data/dockerfiles/scripts -p

(4)、将脚本deploy.sh复制到/data/dockerfiles/scripts下

#vi /data/dockerfiles/scripts/deploy.sh
#chmod +x /data/dockerfiles/scripts/deploy.sh
#chown docker:docker /data/dockerfiles -R
#ls -al /data/dockerfiles/

delpoy.sh 源码

  1 #!/bin/bash
  2 ############################################
  3 # this script function is :
  4 # deploy new docker container
  5 #
  6 # USER        YYYY-MM-DD - ACTION
  7 # huzhifei    2017-11-20 - CREATED
  8 #
  9 ############################################
 10
 11 parasnum=5
 12 # function
 13 help_msg()
 14 {
 15 cat << help
 16 +----------------------------------------------------+
 17 + Error Cause:
 18 + you enter $# parameters
 19 + the total paramenter number must be $parasnum
 20 + 1st :DOCKER_NAME
 21 + 2nd :PROJECT_NAME
 22 + 3rd :PROJECT_VERSION
 23 + 4th :SOURCE_PORT
 24 + 5th :DESTINATION_PORT
 25 +----------------------------------------------------+
 26 help
 27 }
 28
 29 # ----------------------------------------------------
 30 # Check parameter number
 31 # ----------------------------------------------------
 32 if [ $# -ne ${parasnum} ]
 33 then
 34         help_msg
 35         exit
 36 fi
 37
 38 # ----------------------------------------------------
 39 # Initialize the parameter.
 40 # ----------------------------------------------------
 41 DOCKER_NAME=$1
 42 PROJECT_NAME=$2
 43 PROJ_VERSION=$3
 44 SPORT=$4
 45 DPORT=$5
 46
 47 PROJ_VERSION=${PROJ_VERSION/"origin/"/""}
 48
 49 DOCKER_FILE="/data/dockerfiles/${DOCKER_NAME}/Dockerfile"
 50 DOCKER_FILE_DIR=/data/dockerfiles/${DOCKER_NAME}
 51 if [ ! -d ${DOCKER_FILE_DIR} ]; then
 52         mkdir -p ${DOCKER_FILE_DIR}
 53 fi
 54
 55 # ----------------------------------------------------
 56 # check docker images
 57 # ----------------------------------------------------
 58 DOCKER_IMAGE=`/usr/bin/docker images | grep ${DOCKER_NAME} | awk -F ‘ ‘ ‘{print $3}‘`
 59 if [ -n "${DOCKER_IMAGE}" ]; then
 60         # check docker container
 61         for dc in `/usr/bin/docker ps -a | grep ${DOCKER_NAME} | awk -F " " ‘{print $1}‘`
 62         do
 63                 echo "Stop container: ${dc}"
 64                 /usr/bin/docker stop ${dc}
 65                 # delete while docker container was exists
 66                 echo "##Delete exists Container_Id: "${dc}
 67                 /usr/bin/docker rm ${dc}
 68         done
 69
 70         # delete while docker image was exists
 71         echo "##Delete exists Image: "${DOCKER_IMAGE}
 72         /usr/bin/docker rmi ${DOCKER_IMAGE}
 73 fi
 74 echo ""
 75
 76 # ----------------------------------------------------
 77 # Init dockerfile
 78 # ----------------------------------------------------
 79 echo "**Init dockerfile start: "${DOCKER_FILE}
 80 echo "FROM tomcat" > ${DOCKER_FILE}
 81 echo ‘MAINTAINER hzf "[email protected]"‘ >> ${DOCKER_FILE}
 82 echo "ADD *.war /usr/local/tomcat/webapps/${PROJECT_NAME}.war" >> ${DOCKER_FILE}
 83 echo "EXPOSE 8080" >> ${DOCKER_FILE}
 84 echo "CMD /usr/local/tomcat/bin/startup.sh && tail -f /usr/local/tomcat/logs/catalina.out" >> ${DOCKER_FILE}
 85 cat ${DOCKER_FILE}
 86 echo "**Init dockerfile end."
 87
 88 # ----------------------------------------------------
 89 # Build dockerfile
 90 # ----------------------------------------------------
 91 cd ${DOCKER_FILE_DIR}
 92 rm *.war -rf
 93 mv /data/dockerfiles/war/${DOCKER_NAME}/*.war ./
 94 echo ""
 95 echo "##Build dockerfile for "${DOCKER_NAME}
 96 /usr/bin/docker build -t ${DOCKER_NAME}:${PROJ_VERSION} .
 97
 98
 99 # ----------------------------------------------------
100 # Run docker container
101 # ----------------------------------------------------
102 echo ""
103 echo "##Running docker container: "${DOCKER_NAME}
104 /usr/bin/docker run --name ${DOCKER_NAME}_d1 -d -p ${SPORT}:${DPORT} ${DOCKER_NAME}:${PROJ_VERSION}
105
106 #/usr/bin/docker run ${cmd}
107
108 echo ""

三、Jenkins+Docker+Git集成

(1)、配置jenkins全局配置项(Maven、Git、JDK)

(2)、系统配置

(3)、创建并配置job

(4)、构建并查看控制台输出

(5)、访问网站:http://192.168.10.143:12000/docker-centit/

原文地址:https://www.cnblogs.com/hululu160810/p/8883212.html

时间: 2024-07-31 23:38:33

Jenkins+Docker+Git集成平台搭建的相关文章

基于 Jenkins+Docker+Git 的CI流程初探

在如今的互联网时代,随着软件开发复杂度的不断提高,软件开发和发布管理也越来越重要.目前已经形成一套标准的流程,最重要的组成部分就是持续集成(Continuous Integration,CI)及持续部署.交付(CD).在此,我们来以一个案例初步了解 CI 流程.那么什么是 CI 呢?简单来讲,CI 就是将传统的代码合并.构建.部署.测试都集成在一起,不断地执行这个过程,并对结果进行反馈. CI 流程设计图: 工作流程: 1. 开发人员提交代码到Git版本仓库:2. Jenkins人工/定时触发项

jenkins gulp 持续集成环境搭建

本文假设你之前没有用过任何任务脚本(task runner)和命令行工具,一步步教你上手Gulp.然后教你jenkins如何集成前端构建工具Gulp.不要怕,jenkins gulp 持续集成环境搭建其实也很简单,我会分为五步向你介绍jenkins gulp 持续集成并帮助你完成一些惊人的事情.那就直接开始吧. 第一步:安装Node 首先,最基本也最重要的是,我们需要搭建node环境.访问 https://nodejs.org/en/download/ 下载得到这样的一个文件node-v6.9.

jenkins + Tomcat 持续集成环境搭建

今天在跑selenium用例时需要用到导入数据库来恢复数据,以便每次测试都保持环境是有效数据,于是想到了jenkins,这里简单介绍一下tomcat + jenkins的环境搭建: 步骤一.下载符合版本的jdk7,触压到某个目录,设置好JAVA_HOME并加入path. 步骤二.下载tomcat,这里使用的是apache-tomcat-7.0.42步骤三.下载Jenkins,把Jenkins.war放入tomcat的webapps目录下,启动tomcat,通过http://localhost:8

非常详细的Docker极速赛车平台搭建教程

一.Docker 极速赛车平台搭建简介 Docker 两个主要部件:企 娥:217 1793 408 Docker: 开源的容器虚拟化平台Docker Hub: 用于分享.管理 Docker 容器的 Docker SaaS 平台 -- Docker HubDocker 使用客户端-服务器 (C/S) 架构模式.Docker 客户端会与 Docker 守护进程进行通信.Docker 守护进程会处理复杂繁重的任务,例如建立.运行.发布你的 Docker 容器.Docker 客户端和守护进程可以运行在

从0到1体验Jenkins+Docker+Git+Registry实现CI自动化发布

一.前言 Jenkins是一款开源 CI&CD 软件,用于自动化各种任务,包括构建.测试和部署软件.Jenkins 支持各种运行方式,可通过系统包.Docker 或者通过一个独立的 Java 程序.Jenkins是一个广泛用于持续构建的可视化Web工具,持续构建就是将项目自动化编译.打包.部署.通过规范化来完成,简单,繁琐,浪费时间的重复工作. Jenkins名言:构建伟大,无所不能! Jenkins用户手册传送门:https://jenkins.io/zh/doc/ 二.发布流程 工作详细流程

使用jenkins构建持续集成平台

jenkins +   Maven + svn/git + tomcat 的持续集成平台 项目管理流程: 需求分析----原型设计----开发代码----提交测试-----内部测试-----确认上线(确认上线前可能经过多种环境的测试) ------上线到生产环境-----最终测试------如果出现问题代码回滚. 传统代码上线: 开发人员开发完成-----打好包(war.jar)-----交给运维人员上线(上传.拷贝) jenkins持续集成简介: 持续集成是一种软件开发实践,对于提高软件开发效

Jenkins+Docker+Git+Harbor流水线打包

环境: CentOS Linux release 7.6.1810 (Core) 192.168.247.214 Jenkins+docker 192.168.247.215 git+harbor [[email protected] ~]# systemctl stop firewalld [[email protected] ~]# systemctl disable firewalld Step1: 安装jdk环境(214) 下载地址:https://www.oracle.com/tech

【大话QT之十七】Jenkins介绍及安装使用文档(与Git集成)

文章目录结构如下: 1> Jenkins与Git相关介绍 2> Jenkins部署安装 3> Gitblit部署安装 4> Jenkins与Git集成使用 5> 项目集成开发实例 6> 总结 一.Jenkins与Git相关介绍 Jenkins是现在非常流行的持续集成(Continuous Integration)CI服务器,它的前身是Hudson.Jenkins易于安装,不需要数据库的支持,直接通过Web界面进行配置,而且集成了RSS/Email的通知机制,支持分布式构

Jenkins+Ant+Jmeter自动化测试平台

        持续集成 持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成.每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽快的发现集成错误.许多团队发现这个过程可以大大减少集成的问题,让团队能够更快的开发内聚的软件. jenkins是基于java开发的一种持续集成工具,用于监控持续重复的工作,功能包括:持续的软件版本发布.测试项目,监控外部条用执行的工作. 项目构建 通过构建工具对多个项目文件进行