【转】docker+jenkins+git持续部署实践

写在前面

以前搭建spring-cloud的时候 看到别人代码里面总有Dockerfile,然后了解到docker容器的概念,玩了两个星期玩不下去了,就放下了,无意间在网上看到一篇文章Docker持续部署,就想着自己也搭建一套玩玩。

流程

网上那篇文章介绍的流程涉及到多个docker镜像,我这里为了入门就简单化了。
  • 1
  • 2

自动化部署效果就是: 你修改了本地的代码 然后push到git上面,git的webhook功能会给jenkins post一个请求,jenkins接收到请求后,就进行打包部署操作,细节下面会说。

docker部署jenkins

docker 怎么安装使用可以参考以前博客。 
docker启动:

sudo route del -net 172.16.0.0 netmask 255.240.0.0
  • 1
sudo service docker start
  • 1

镜像地址:https://hub.docker.com/jenkins/ 
jenkins docker官网有提供image的 直接pull下来就可以了。 
jenkisn安装步骤: 
拉取镜像

docker pull jenkins:latest
  • 1

这种方式启动会存储数据,-t 标示以后台模式运行,-p标示容器和宿主服务器之间的开放端口号 -v表示需要将本地哪个目录挂载到容器中,格式:-v <宿主机目录>:<容器目录> 
运行容器

docker run -t  -p 8080:8080 -p 8083:8083 -p 50000:50000  -v /var/jenkins_home:/var/jenkins_home jenkins
  • 1

运行成功之后,我们输入http://ip:8080/ 就可以访问到了

jenkins的注意事项

  1. 权限问题,具体细节可以百度,我们可以先开发用户注册功能,然后注册一个用户,然后给注册的用户开放所有的权限,匿名的用户权限勾掉。需要注意一点的就是 git的webhok功能也需要权限,所以我们配置安全矩阵的时候要开发匿名用户的访问job的权限,不然git的webhok功能无法使用 
  2. 系统配置 
    在全局属性里面新增:BUILD_ID=DONTKILLME 这个键值对非常重要,如果不配置 无论你怎么运行java -jar *.jar & 项目都无法后台运行,因为一旦jenkins 部署成功执行完shell 就会把其他的进程都干掉。 
    maven jdk都要配置下
  3. 插件安装 
    git/Publish over SSH 都要按照然后配置
  4. 项目配置


  5. shell 主要实现kill 原有的java进程和运行新的jar
projectName="dockerjenkins.jar"
#kill
ps -ef | grep -v ‘grep‘ | grep ‘dockerjenkins.jar‘ | awk ‘{print $2}‘| xargs kill -9

ps -ef|grep java

echo "start ${projectName}"

java  -jar $WORKSPACE/target/${projectName}  &
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

git webhoks

git项目地址:https://github.com/ggj2010/dockerjenkins.git 
webhoks配置: 
这个url 和jenkins配置项目的地址一致 可以看前面截图触发远程构建

原文链接:https://blog.csdn.net/ggjlvzjy/article/details/51151591

原文地址:https://www.cnblogs.com/w3liu/p/9246538.html

时间: 2024-10-16 07:41:26

【转】docker+jenkins+git持续部署实践的相关文章

实战docker+jenkins+git构建持续集成环境

本文重点介绍jenkins以及让jenkins如何实现在docker容器中运行.jenkins和docker私有仓库又是怎么结合的.docker说明及安装和git说明及安装在本文中不会特别详细的介绍. ?并且,在本文中不着重介绍原理性的东西,比如不会介绍什么是持续集成.持续构建等等.本文的重点是实战为主.对持续集成.持续交互.持续部署不太了解的朋友可以参考这篇文章了解一下:https://www.zhihu.com/question/23444990 1.背景说明 Jenkins是一个开源软件项

Docker在Ubuntu的部署实践

Docker在Ubuntu的部署实践 作者:chszs,版权所有,未经同意,不得转载.博主主页:http://blog.csdn.net/chszs 本文讲述Docker在Ubuntu系统上的部署过程.其中,Ubuntu为12.04.5 LTS, Precise Pangolin版. 1.安装Docker # apt-get update # apt-get install docker.io Reading package lists... Done Building dependency t

Docker——Jenkins + Git + Registry构建自动化持续集成环境(CI/CD)

前言 在互联网时代,对于每一家公司,软件开发和发布的重要性不言而喻,目前已经形成一套标准的流程,最重要的组成部分就是持续集成(CI)及持续部署.交付(CD). 本文基于Jenkins+Docker+Git\Svn实现一套CI自动化发布流程,同时支持撤回. 一.发布流程设计 工作流程: 开发人员提交代码到Git或Svn版本仓库: Jenkins人工/定时触发项目构建: Jenkins拉取代码.代码编码.打包镜像.推送到镜像仓库: Jenkins在Docker主机创建容器并发布. 二.环境设计 1.

ASP.NET Core + Docker +Jenkins 实现持续集成

1.新建一个ASP.NET Core MVC应用程序: 2.将其上传到git: 3.建立Jenkins任务 (1)选择"新建任务",输入任务名称,选择"自由风格项目",然后点击确定: (2)选择"源代码管理",填入我们的git地址 输入H/2 * * * *设置两分钟拉取一次 (3)构建环境 勾上 Delete workspace before build start 是设置构建前删除工作区 勾上 Abort the build if it's

ant+jmeter+jenkins+git持续集成以及邮件报告展示

前序准备工作: ant--下载地址:http://ant.apache.org/bindownload.cgi jmeter--下载地址:http://jmeter.apache.org/download_jmeter.cgi jenkins--下载地址:https://jenkins.io/ git--下载地址:https://git-scm.com/downloads jdk--http://www.oracle.com/technetwork/java/javase/downloads/i

Jenkins + Git +IIS 部署

一.安装对应的Jenkins版本(这里选的Windows版) 1.下载地址:https://jenkins.io/ 2.默认安装:安装成功后可以通过http://localhost:8080/打开BS端管理界面 3.解锁Jenkins 4.安装自定义插件 注:此处安装失败,提示缺少插件 原文地址:https://www.cnblogs.com/yxcn/p/11629947.html

Docker+Jenkins持续集成环境(2)使用docker+jenkins构建nodejs前端项目

前文使用Docker搭建Jenkins+Docker持续集成环境我们已经搭建了基于docker+jenkins的持续集成环境,并构建了基于maven的项目.这一节,我们继续扩展功能,增加对Nodejs的支持,实现nodejs项目构建.并打包成docker镜像和自动部署. 1. 配置Nodejs环境 1.1 安装nodejs插件 打开系统管理——管理插件——可选插件,搜索NodeJS,选择NodeJS Plugin安装 1.2 配置nodejs 版本 系统管理 —— 全局工具配置 —— NodeJ

自动化测试到持续部署

从自动化测试到持续部署,你需要了解这些 在互联网的产品开发时代,产品迭代越来越频繁,“从功能开发完成直到成功部署”这一阶段被称为软件开发“最后一公里”.很多开发团队也越来越认识到,自动化测试和持续部署可帮助开发团队提高迭代效率和质量. 那么,如何更好地解决“最后一公里”这一问题呢? 一切从自动化测试开始,让自动化测试贯穿在整个项目开发-集成-部署-交付的-开发流程中. 如果你的团队还没有开始自动化测试,推荐从经典的测试金字塔开始. 自动化测试 在这个分层自动化测试金字塔中,Unit 代表单元测试

【微服务那些事】Microservices场景下的持续部署

近两年作者在海外交付中参与 microservices 下的团队,为客户提升 Finance 系统的扩展性.作者所在团队,3 对开发(pair programming, 2 个 dev 为 pair)为客户支撑着 11 个 services,持续部署流水线(CD pipeline)是其中必不可少的一个技术实践.本次分享作者将从实践的角度分享 microservices 架构下的持续部署(CD). 内容概述 1. microservice 概述:简要介绍 microservice 架构下的挑战 2