ChuanGoing 2019-12-15

  上一篇介绍了docker环境搭建,本篇继续深入,结合jenkins利用docker-compose容器编排简单介绍下如何实现个人学习的持续集成/部署。

本篇学习曲线:

1.安装/运行jenkins容器

2.asp.net core web项目配置

3.jenkins配置github代码管理

4.示例演示

安装/运行jenkins容器

1.登录服务器运行命令,拉取jenkins镜像(注意jenkins tag):

docker pull jenkins/jenkins

启动jenkins容器:

docker run -d --name jenkins -p : -p : -v /root/jenkins_home:/var/jenkins_home -v /usr/bin/docker:/bin/docker -v /var/run/docker.sock:/var/run/docker.sock -v /usr/local/bin/docker-compose:/bin/docker-compose jenkins/jenkins

上面命令稍作解释:-d标识后台运行,-name标识镜像名,-p指定主机端口-容器内部端口映射,-v标识主机目录-容器卷映射(将容器目录挂载到主机目录,以便持久化数据)

注意我这里-v /var/run/docker.sock:/var/run/docker.sock命令实现容器内部响应docker命令,详细说明请看关于/var/run/docker.sock

2.输入服务器ip+jenkins端口

jenkins容器运行后,第一次使用admin账号登录,admin密码可以在:/容器挂载路径/secrets/initialAdminPassword文件中查看。

登录后就是选择默认模式安装插件,等待插件安装完成后自动进入页面(如因网速等原因导致插件安装失败,去系统管理-插件管理手动安装即可)

进入到jenkins主页:

asp.net core web项目配置

1.新建asp.net core web项目并上传至github仓储

2.配置jenkins/github webhook,使得有代码提交到github后自动触发消息发送订阅目标

jenkins关联github webhook配置请参考:https://www.jianshu.com/p/07b60b788088

jenkins配置github代码管理

登录jenkins,新建自由风格软件项目

源码管理设置项目地址即访问凭证

勾选如上选项(github代码提交自动触发构建任务)

构建脚本如上,简单说明下:

#移除docker构建过程临时镜像(无镜像名和tag:none<none>)

docker image prune -f

jenkins接收到github触发构建时间时,代码下载到:{容器挂载目录}/workspace/{jenkins项目名称},注意这里时在jenkins容器内执行shell命令,因此绝对路径为jenkins内部的绝对路径,进入到代码存储位置:cd /var/jenkins_home/workspace/WorkPipeline

执行docker-compose构建命令

有关于docker-compose.yml即Dockerfile文件,请看本篇末尾github项目链接

示例演示

提交代码,

jenkins工作台可以看到正在构建

查看构建日志:

项目构建成功,docker-compose.yml文件中将主机端口映射到webonline容器5000端口

现在,浏览器输入:http://{服务器ip}:5000

web项目成功部署

本示例中的web项目及相关dockerfile配置见github链接:https://github.com/ChuanGoing/DockerMain.git

Docker学习-jenkins+github实现持续集成和部署的更多相关文章

  1. 构建基于Jenkins + Github的持续集成环境

    搭建持续集成首先要了解什么是持续集成,带着明确的目标去搭建持续集成环境才能让我们少走很多弯路.持续集成(Continuous integration)简称CI,是一种软件开发的实践,可以让团队在持续集 ...

  2. Redhat上为java Maven项目构建基于Jenkins + Github的持续集成环境

    在Redhat enterprise 6.5 的服务器上,为在gutub 上的 java mvaen项目构建一个持续集成环境,用到了Jenkins.因公司的服务器在内网,访问外网时要通过代理,所以为m ...

  3. [Jenkins][GitHub]2 持续集成环境初探

    预计阅读时间:30分钟 部署环境:Jenkins ver. 2.61 + Centos7 + Java 1.8 参考链接: http://www.jianshu.com/p/22b7860b4e81 ...

  4. linux+jenkins+github+python持续集成

    1.服务器上事先安装jenkins   参见:linux上war包方式安装Jenkins 2.新建一个自由风格的job,名字随意起 3.配置git(拉取github代码) 从github复制pytho ...

  5. ASP.NET Core & Docker & Jenkins 零基础持续集成实战

    原文:ASP.NET Core & Docker & Jenkins 零基础持续集成实战 一.本系列教程说明 源代码管理工具:Gogs 持续集成工具:Jenkins 容器:Docker ...

  6. .NET Core 从 Github到 Nuget 持续集成、部署

    一.前言 Nuget 作为一个.NET研发人员,我想你都不会陌生,他为我们提供非常方便的程序包管理,不管是版本,还是包的依赖都能轻松应对,可以说是我们的好助手.而 Nuget 除了官方nuget.or ...

  7. Asp.net Core 使用Jenkins + Dockor 实现持续集成、自动化部署(二):部署

    前面又是废话 我之前写过: Asp.Net Core 程序部署到Linux(centos)生产环境(一):普通部署 Asp.Net Core 程序部署到Linux(centos)生产环境(二):doc ...

  8. Asp.net Core 使用Jenkins + Dockor 实现持续集成、自动化部署(一):Jenkins安装

    2019/1/31更新,经过我一段时间的使用 建议大家的jenkins还是不要使用docker方式安装 建议大家的jenkins还是不要使用docker方式安装 建议大家的jenkins还是不要使用d ...

  9. Jenkins持续集成与部署

    一.Jenkins简介 在阅读此文章之前,你需要对Linux.Docker.Git有一定的了解和使用,如果还未学习,请阅读我前面发布的相关文章进行学习. 1.概念了解:CI/CD模型 CI全名Cont ...

随机推荐

  1. CSS(6)---通俗讲解浮动(float)

    CSS(6)---通俗讲解浮动(float) CSS有三模块:盒子模型.浮动 .定位.上篇博客有讲到 盒子模型地址:CSS(5)---通俗讲解盒子模型 一.理解浮动 1.概念 概念 浮动可以理解为让某 ...

  2. SpringBoot 源码解析 (三)----- Spring Boot 精髓:启动时初始化数据

    在我们用 springboot 搭建项目的时候,有时候会碰到在项目启动时初始化一些操作的需求 ,针对这种需求 spring boot为我们提供了以下几种方案供我们选择: ApplicationRunn ...

  3. ChickenLegend Image

  4. Mssql 查询某记录前后N条

    Sqlserver 查询指定记录前后N条,包括当前数据 条件 [ID] 查询 [N]条 select * from [Table] where ID in (select top ([N]+1) ID ...

  5. 将 /u 转变为 utf-8 编码

    将 /u 转变为 utf-8 编码 PHP实例: $result = {"errno":-1,"message":"\u8bbf\u95ee\u5fa ...

  6. 通过myclipse建立一个简单的Hibernate项目(PS:在单元测试中实现数据的向表的插入)

    Hibernate的主要功能及用法: Ⅰ.Hibernate封装了JDBC,使Java程序员能够以面向对象的思想对数据库进行操作 Ⅱ.Hibernate可以应用于EJB的J2EE架构,完成数据的持久化 ...

  7. 从0开始学前端(笔记备份)----HTML部分 Day1 HTML标签

  8. oracle:表重命名

    SQL> rename test1 to test; Table renamed. SQL> alter table test rename to test1; Table altered ...

  9. Bran的内核开发教程(bkerndev)-08 中断服务程序(ISR)

    中断服务程序(ISR)   中断服务程序(ISR)用于保存当前处理器的状态, 并在调用内核的C级中断处理程序之前正确设置内核模式所需的段寄存器.而工作只需要15到20行汇编代码来处理, 包括调用C中的 ...

  10. 【漏洞复现】Apache Solr远程代码执行(CVE-2019-0193)

    0x01 概述 Solr简介 Apache Solr 是一个开源的企业级搜索服务器.Solr 使用 Java 语言开发,主要基于 HTTP 和 Apache Lucene 实现.Apache Solr ...