Docker部署Jenkins 2.285版持续部署集成实践(2)
前言:上一篇文章中,写到了jenkins搭建,下面记录使用jenkins构建项目实践
1. 以构建.netcore项目为例,如果要构建.netcore项目,需要安装dotnet-sdk包
进入jenkins01容器:
Docker exec –it –u root jenkins01 bash
参考官网:https://dotnet.microsoft.com/learn/dotnet/hello-world-tutorial/install
安装netcore sdk,输入命令:
apt-get install apt-transport-https
apt-get update
apt-get install dotnet-sdk-3.1
说明:如果构建的项目使用的环境多了,那docker里面需要安装各种SDK,就变成了一个小系统,就会比较臃肿,这里建议在Jenkins添加一个主机节点来构建项目
2. Jenkins添加构建节点slave构建项目
进入Jenkins主界面,选择Set up an agent

这里我以我本地主机为节点,ip地址来命名


其他参数默认即可

在Slave节点,执行命令,连接
说明:Slave节点需要,安装Java JDK 并配置环境变量等信息
在Slave节点执行下图圈中的命令:

命令:
java -jar agent.jar -jnlpUrl http://192.168.231.132:8090/computer/10.100.34.57/jenkins-agent.jnlp -secret 3e4b8229b6e5cf13b97d6a527d84c5ee14b6f532d0d356a235b2051740ccb6da -workDir "E:\Jenkins"
报错:

解决方法:

点击按钮,下载一个客户端(jenkins-agent),双击执行


说明:这个窗口不要关闭,如果关闭,节点就连接不上了查看jenkins节点状态

3. 创建.netcore项目,使用Jenkins构建
创建一个任务

配置到我们设置好的windows节点构建

编辑windows shell脚本


脚本参考:
cd "E:\PersonalProject\Netcore\coreApp3.1\coreApp3.1"
dotnet restore
dotnet build
dotnet publish -o F:\Publish
说明:进入项目根目录,还原,构建,发布到目录F:\Publish
保存任务,执行构建

查看构建日志

查看发布目录(F:\Publish),发现了发布的.netcore的程序,成功了

4.扩展(构建镜像+创建应用容器),前提slave节点需要安装有Docker,因为我本地没有docker,所以贴几张以前的图来展示过程
项目中添加docker支持,自动生成dockerfile文件

设置jenkins任务,增加后续构建步骤


执行任务构建,发现Slave节点(docker for windows),已有镜像文件

批处理命令再添加两行,构建完镜像后,直接创建app容器

参考code:
F:
cd F:\Publish
docker build -t netapp:1.0 .
docker run -it -d -p 8002:80 --name netcoreapp01 --privileged=true netapp:1.0
docker logs netcoreapp01
5. 最后,构建完镜像后,还可以推送到私有云镜像仓库或公有云(如:阿里云)上,各个app服务器节点拉取,构建应用
Docker部署Jenkins 2.285版持续部署集成实践(2)的更多相关文章
- Docker部署Jenkins 2.285版持续部署集成实践(1)
抓取Jenkins镜像 docker pull jenkins/jenkins 创建映射本地路径: 运行Jenkins实例 docker for windows: docker run -it -p ...
- Docker+GitLab+Jenkins+kubernetes实现DevOps 持续化集成和持续化部署概念图
Docker+GitLab+Jenkins+kubernetes实现DevOps 持续化集成和持续化部署概念图 转载自:原创 IT综合 作者:百联达 时间:2017-05-09 15:48:08 41 ...
- Jenkins+git+gitlab实现持续自动集成部署
1 实验环境 三台服务器 gitlab 192.168.7.139 Jenkins 192.168.7.140 java 192.168.7.141 [root ...
- Azure 项目构建 – 部署 Jenkins 服务器以实现持续集成(CI)
通过完整流程详细介绍了如何通过 Azure 虚拟机.虚拟网络等服务在 Azure 平台上快速搭建 Jenkins 服务器. 此系列的全部课程 https://school.azure.cn/curri ...
- Linux 部署jenkins + svn + mavne + tomcat8自动化部署
1,下载Jenkins war包 官网下载地址 https://jenkins.io/ 2.初始化安装 1)首次启动jenkins,出于安全考虑,jenkins会生成一个随机的口令到 /root ...
- 构建gitlab+Jenkins+harbor+kubernetes的DevOps持续集成持续部署环境
构建gitlab+Jenkins+harbor+kubernetes的DevOps持续集成持续部署环境 整个环境的结构图. 一.准备工作 gitlab和harbor我是安装在kubernetes集群外 ...
- CI/CD持续集成/持续部署 敏捷开发
敏捷软件开发(英语:Agile software development),又称敏捷开发,是一种从1990年代开始逐渐引起广泛关注的一些新型软件开发方法,是一种应对快速变化的需求的一种软件开发能力.它 ...
- 持续部署CI/CD
一.简介 在敏捷开发时,通常将服务进行拆分成不同模块,每个开发小组负责一个模块的开发,会在一天内对这个模块进行频繁的提交到仓库主干并部署到线上.CI/CD就是在开发中使用工具保证快速并稳定上线的方法, ...
- 译\Node.js应用的持续部署
Node.js应用的持续部署 翻译前 翻译自:https://blog.risingstack.com/continuous-deployment-of-node-js-applications/ 正 ...
随机推荐
- To_Heart—题解——AT2165
这是一篇解题报告 首先,看到标签,考虑二分答案. 我们二分答案(即塔顶的值),把大于或等于这个值的变为1,否则变为0. 很容易发现,如果塔顶的答案是1,那么就说明值可以更大,否则相反. 复制一波样例 ...
- LAMP——搭建基于Apache、wordpress、nfs、mysql、DNS的系统
一.部署架构 二.部署过程 1.在10.0.0.8和10.0.0.18服务器上安装apache服务 [17:10:06 root@centos8 ~]#yum -y install httpd 安装p ...
- AOF重写导致的Redis进程被kill
Redis环境描述 服务器: 阿里云16GB服务器 Redis版本: 5.0.5 持久化方式: AOF 问题描述 阿里云环境,使用docker安装的单节点redis5.x,频繁出现redis进程被操作 ...
- java swagger ui 添加header请求头参数
我用到的swagger 主要有三款产品,swagger editor,swagger ui 和swagger codegen. swagger editor:主要是一个本地客户端,用来自己添加api, ...
- The Different of Python 2.x and 3.x
为了不给Python3.0带入过多的累赘,Python 3.x没有考虑向下兼容 1,print 函数 print语句没有了,取而代之的是print()函数. Python2.7 print " ...
- SpringMVC(7)格式化显示
在SpringMVC(六)数据验证中我们介绍了如何验证提交的数据的正确性,当数据验证通过后就会被我们保存起来.保存的数据会用于以后的展示,这才是保存的价值.那么在展示的时候如何按照要求显示?(比如:小 ...
- DB2某建表语句
DB2建表加注解的建表语句 CREATE TABLE table_name ( company CHARACTER(1) NOT NULL DEFAULT 'N', online CHARACTER( ...
- swoole实现任务定时自动化调度详解
开发环境 环境:lnmp下进行试验 问题描述 这几天做银行对帐接口时,踩了一个坑,具体需求大致描述一下. 银行每天凌晨后,会开始准备昨天的交易流水数据,需要我们这边请求拿到. 因为他们给的是一个bas ...
- netcore3.1 + vue (前后端分离)生成PDF(多pdf合并)返回前端打印
1.使用Adobe Acrobat XI Pro编辑pdf模板 2.公共类代码 3.service层调用 4.Controller层 5.前端(Vue) 因为print.js不支持宋体,所以打算用后台 ...
- CF1539B Love Song[题解]
Love Song 题目大意 给定长度为 \(n\) 的字符串和 \(q\) 个区间 \([l,r]\) .定义一个字符的值为该字母在字母表中的序号,对于给定的每个区间,求其中所有字符的值的和. 分析 ...