netcore + docker + jenkins 持续集成日志

要实现的目标 : 提交代码到github的master分支后, 触发webhook, jenkins从github上重新拉取代码=>编译=>打包成docker镜像=>重新发布

机器: centos 7.4

1. 安装git,jenkins,docker-ce

git可以直接yum 安装 :

yum install git -y

也可以安装新版本 参考文章:  https://linuxize.com/post/how-to-install-git-on-centos-7/

jenkins 安装参考文章  https://www.cnblogs.com/stulzq/p/9291237.html

docker-ce 安装参考官网: https://docs.docker.com/install/linux/docker-ce/centos/

2. 新建一个net core demo上传到github

  新建时候点击启用docker支持,会生成一个Dockerfile的docker文件

把这个Dockerfile移动到 解决方案(.sln)同目录

这个Dockerfile基本就是把当前目录的文件拷贝到aspnetcore-build镜像中,再里面编译好之后再发布到aspnetcore:3.1镜像中,
最后指定运行你的dotnet core程序

创建完项目后 用desktop 创建一个仓库 传到github

3. 测试下dockerfile是否正常工作

#这个是jenkins默认的存放代码位置
cd  /var/lib/jenkins/workspace/;
git clone https://github.com/bbenph/WebApplication1.git
cd WebApplication1

image_version=`date +%Y%m%d%H%M`;
echo $image_version;
# 停止之前的docker container
docker stop test || true;
# 删除这个container
docker rm test || true;
# build镜像并且打上tag
docker build -t test:$image_version .;
docker images;
# 把刚刚build出来的镜像跑起来
docker run -p 8810:80 --restart=always --name test -d test:$image_version;
docker logs test;

可以看到 image container 都有了 程序也跑起来了

 

4. 配置jenkins拉取github代码

通过上面这个dockfile脚本,我们已经把dotnet core程序编译好了,并且打包成了docker images,还直接跑起来了.
但是我们想要的应该是自动化编译部署,而且上面我们都把jenkins跑起来了,所以….
jenkins job配置
新建Job
打开jenkins首页,左侧选择”新建任务”(newJob) => Freestyle project

添加源码仓库
确认之后进入Job配置页面, 先只配置 源码管理和构建模块

上面的shell脚本说明:

/var/lib/jenkins/workspace/ 是jenkins的默认工作路径  后面的/test 是新建jenkins 任务的名称

|| true  是即使这个container不存在 报错也不影响下面shell脚本执行 因为有时候container不存在/没运行  也是可能的

docker run 命令可以 通过 docker run --help 查看各参数啥意思

点击应用 => 保存

测试下jenkins配置是否正常

现在修改代码,提交github 后  再次jenkins中的立刻构建 发现使用新的image重新创建了一个容器

修改的内容也看到了

5. 配置jenkins  代码提交github master分支后 自动化编译部署

文章: https://github.com/muyinchen/woker/blob/master/%E9%9B%86%E6%88%90%E6%B5%8B%E8%AF%95%E7%8E%AF%E5%A2%83%E6%90%AD%E5%BB%BA/%E6%89%8B%E6%8A%8A%E6%89%8B%E6%95%99%E4%BD%A0%E6%90%AD%E5%BB%BAJenkins%2BGithub%E6%8C%81%E7%BB%AD%E9%9B%86%E6%88%90%E7%8E%AF%E5%A2%83.md

原文地址:https://www.cnblogs.com/xtxtx/p/12218866.html

时间: 2024-07-31 07:05:56

netcore + docker + jenkins 持续集成日志的相关文章

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

Docker+Jenkins持续集成环境(3)集成PMD、FindBugs、Checkstyle静态代码检查工具并邮件发送检查结果

为了规范代码,我们一般会集成静态代码检测工具,比如PMD.FindBugs.Checkstyle,那么Jenkins如何集成这些检查工具,并把检查结果放到构建邮件里呢? 今天做了调研和实现,过程如下 首先看,最终效果: 1.pom.xml build.plugins 增加: <plugin> <artifactId>maven-assembly-plugin</artifactId> <executions> <execution> <ph

Git+Docker+Jenkins持续集成

组成: Git 作为版本控制库 Docker 搭建测试环境 Jenkins 作为持续集成服务 Jenkins实现CI(Continuous Integration)到CD(Continuous Delivery)的转换工具. 期望: 1.解决从开发–测试–上线等一系列环境统一及依赖问题 2.可实现不停服务发布上线和灰度(需要实现LB) 3.可实现发布回滚 4.方便devops及运维操作 思路: 客户或产品有新需求变更或者测试人员提出bug时,会提交事件到开发人员,开发人员得到通知,会对开发分支做

docker搭建gitlab+Jenkins持续集成环境

安装docker 此处省略一.使用docker安装gitlab docker pull gitlab/gitlab-ce:latest下载完成之后使用docker生成容器docker run -dit \-p 8443:443 \-p 8080:80 \-p 2222:22 \-p 9090:9090 \--name gitlab \--restart always \-v /home/gitlab/config:/etc/gitlab \-v /home/gitlab/logs:/var/lo

Jenkins持续集成学习及企业级应用

文档声明 该文档主体为去年末自主学习时总结,旨在为我司提供一套企业级持续集成解决方案.这篇文章现在看上去很稚嫩,但是当时花费了许多心血.希望将当时的学习心得拿出来与大家交流.该文档主要说明了jenkins持续集成部署的相关步骤,并着重实现了权限分组,邮件配置,插件配置的jenkins实现过程.对出现的问题进行解决,是一套持续集成的解决方案. 持续集成Continuous integration 提出 针对复杂度高的项目提出“早集成,常集成,频繁集成”来帮助项目在早期发现项目风险和质量问题 作用

某项目docker化持续集成日记

某项目docker化持续集成日记 要求将某项目的部署方式转变为docker的方式,并和jenkins相结合,主要组件有自身的两个服务(bill-api ,bill-backend)以及mysql.mq.redis 2016-04-18 先申请了2台机器,因为只是demo,所以提出要debian7 3.18内核的,配置的话2x2 4G或以上就可以 得到2台机器106和107 在jenkins节点机器上ping和telnet一下,访问正常 jenkins机器138 安装docker-1.9.1 1

Jenkins持续集成-自动化部署脚本的实现《python》

读者须知:1.本手记本着记续接前面的两张手记内容整理2.本手记针对tomcat部署测试环境实现 最近工作比较繁忙,导致这章一直拖延,没有太抽出时间来总结.要实现Jenkins端的持续集成,其实在CI服务配置端很容易,难点呢?就是如何实现自动化的部署.我的脚本设计就是为了解决以下难题: 难点一.如何使得自动化部署脚本更通用 我用的脚本,依赖依赖一个配置文件的模块化,让每一个应用业务模块更加通用.自动化所执行的命令呢?我也是设计想法本着更加通用平台的原则,至少对于tomcat+java or jav

Jenkins 持续集成使用教程

Jenkins 持续集成使用教程 用 jenkins 有什么好处 通过规范化来完成,简单,繁琐,浪费时间的重复工作 规范化工作,以免出现低级错误 实现随时随地任何人一键构建 ...... 安装 jenkins 以 Mac 设备为例(Windows 步骤类似),帮你一步一步搭建好 jenkins.jenkins 属于 java 项目 依赖于 java,需要先安装 java jdk,具体安装方式请自行百度. 安装 jenkins 有常用的三种方式. 使用 pgk 安装包安装 在 官网 下载 pgk

Linux-GitLab+Jenkins持续集成+自动化部署

GitLab+Jenkins持续集成+自动化部署 什么是持续集成? (1)Continuous integration (CI) 持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员至少集成一次,也就意味着每天可能会发生多次集成.每次集成都通过自动化的构建(包括编译.发布.自动化测试)来验证,从而尽快地发现集成错误.许多团队发现这个过程可以大大减少集成的问题,让团队能够更快的开发内聚的软件. (2)没有持续集成 项目做模块集成的时候,发现很多接口都不通==>浪费大量时间 需