ci与cd之docker上安装jenkins(代码片段)

peyshine peyshine     2022-12-10     286

关键词:

一.CI,CD,Jenkins的介绍

CI:持续集成(Continuous integration,简称 CI),在传统的软件开发环境中,有集成,但是没有持续集成这种说法,长时间的分支与主干脱离,导致分支与主干可能存在较大偏差,在集成代码的时候可能需要花费数小时更久的时间来修复代码,以便最终将代码集成主干(俗称"集成地狱"或"集成灾难");而CI旨在鼓励团队成员进行频繁集成(例如每小时或至少每天一次来避免这种情况的出现,通过自动检测、拉取、构建和(在大多数情况下)进行单元测试的过程,来保障代码的质量可以进行下一步的使用,这也是持续集成的目的,CI是属于开发人员的自动化流程。
 
CD:持续交付(Continuous Delivery)和持续部署(Continuous Deployment),这里查阅了一些资料,并简单总结了一下:
  
  1.持续交付意味着所有的变更都可以随时交付生产使用,强调的是一种可交付的能力

  2.持续部署意味着所有被发现的release candidate 并且通过所有质量测试的变更都会被自动部署到生产环境中,强调的是一种方式

 

Jenkins:Jenkins是开源CI&CD软件领导者,并拥有众多插件来支持它用于持续、自动的构建/测试软件项目、监控外部任务的运行
 

二.在docker上安装Jenkins

选择jenkins的镜像文件,这里推荐使用jenkinsci/blueocean,该镜像包含当前的长期支持 (LTS) 的Jenkins版本 (可以投入使用) ,捆绑了所有Blue Ocean插件和功能。这意味着你不需要单独安装Blue Ocean插件,镜像地址:https://hub.docker.com/r/jenkinsci/blueocean/

docker run   -u root   --rm   -d   -p 8083:8080   -p 50000:50000   -v /data/jenkins:/var/jenkins_home   -v /var/run/docker.sock:/var/run/docker.sock   jenkinsci/blueocean

参数说明:

--rm 关闭时自动删除Docker容器(下图为实例)。如果您需要退出Jenkins,这可以保持整洁;
-d 在后台运行容器;
-p 映射容器服务的8080端口到宿主机的8090(我的8080已经被Apollo占用,所以改为8083,没被占用的可以不用改,发现很多工具都喜欢用8080端口,比如:Apollo,SkyWalking,还有这里的Jenkins等)端 口,下面的50000也是一样,将容器的端口50000 映射到主机上的端口50000;
-v 这里是将本机的“/data/jenkins”目录挂载到容器中的/var/jenkins_home中,作为jenkins的存储目录;/var/run/docker.sock 表示Docker守护程序通过其监听的基于Unix的套接字。该映射允许jenkinsci/blueocean 容器与Docker守护进程通信。
jenkinsci/blueocean 是镜像名称
 
docker run的时候,如果镜像文件不存在,则会先自动拉取该镜像,然后再启动容器,通过下图可以看到有提示说明本地不存在该镜像,然后自动拉取的过程
技术图片

等待安装完成之后,打开浏览器访问:http://部署的机器ip:8083 (没改的话默认8080),就可以看到Jenkins的界面

技术图片

 

然后通过以下命令访问Jenkins控制台日志,复制出密码(在两组星号之间的就是生成好的管理员密码)如图
docker logs <CONTAINER ID>

技术图片

 

复制出密码后,按照页面的提示,粘贴过去,点击继续就进入下一步骤了

技术图片

这里点击安装推荐的插件,然后等待安装完成
技术图片
 
插件安装完成后,可根据提示创建用户或者继续使用admin,后面默认点击保存并完成,就可以进入Jenkins的首页了
技术图片

到这里,Jenkins部署流程就已经结束了,再分享两个可能用到的命令:

1.访问Jenkins / Blue Ocean Docker容器

docker exec -it <CONTAINER ID> bash

2.访问Jenkins控制台日志

docker logs <CONTAINER ID> 
上面获取管理员密码就是就是用的这个命令,部署下来还挺快的,大家动手试试吧!



ci/cd之jenkins(代码片段)

jenkinsCI/CD简介jenkins简介jenkins安装安装jenkins插件安装中文插件安装流水线插件安装gitlab插件jenkins和gitlab联动jenkins轮询检查gitlab代码变更使用webhook实时检查gitlab代码变更推送dockerfile文件自动构建镜像新增agent节点jenkins用户管理CI... 查看详情

ci/cd之jenkins(代码片段)

jenkinsCI/CD简介jenkins简介jenkins安装安装jenkins插件安装中文插件安装流水线插件安装gitlab插件jenkins和gitlab联动jenkins轮询检查gitlab代码变更使用webhook实时检查gitlab代码变更推送dockerfile文件自动构建镜像新增agent节点jenkins用户管理CI... 查看详情

jenkins与docker的自动化ci/cd实战(代码片段)

...布流程设计工作流程:开发人员提交代码到Git版本仓库;Jenkins人工/定时触发项目构建;Jenkins拉取代码、代码编码、打包镜像、推送到镜像仓库;Jenkins在Docker主机创建容器并发布。环境规划如下:角色IPGit/Registry192.168.56.11Docker19... 查看详情

jenkins与docker的自动化ci/cd实战(代码片段)

...就是持续集成(CI)及持续部署、交付(CD)。本文基于Jenkins+Docker+Git实现一套CI自动化发布流程。一、发布流程设计工作流程:开发人员提交代码到Git版本仓库;Jenkins人工/定时触发项目构建;Jenkins拉取代码、代码编码、打包镜... 查看详情

docker与jenkins的自动化ci/cd流水线实战(代码片段)

docker与jenkins的自动化CI/CD流水线实战在互联网时代,对于每一家公司,软件开发和发布的重要性不言而喻,目前已经形成一套标准的流程,最重要的组成部分就是持续集成(CI)及持续部署、交付(CD)。本文基于Jenkins+Docker+Git... 查看详情

docker与jenkins的自动化ci/cd流水线实战(svn)

准备安装完成以下环境:1、svn2、jdk3、maven4、tomcat5、jenkins项目代码测试(php/java):https://github.com/lizhenliang配置svn1、查看结构trunk:主干分支branches:其他分支tags:打标记将代码最终打到tags目录下,打成版本号标记,然后再jenk... 查看详情

jenkins与docker的自动化ci/cd流水线实战(代码片段)

Jenkins与Docker的自动化CI/CD流水线实战标签(空格分隔):docker的部分一:什么是CI/CD二:发布流程设计三:部署Git仓库并上传测试代码一:什么是CI/CD持续集成(ContinuousIntegration,CI):代码合并、构建、部署、测试都在一起,不... 查看详情

ci/cd1jenkins,actions(代码片段)

文章目录1.jenkins:构建/测试/部署就是CICD工具即jenkins,但jenkins需要个人提供一台运行jenkins的机器2.GitLab与Jenkins集成:Jenkins镜像像nginx一样2.1Jenkins-docker配置:运行在8080端口上,机器只要安装docker就能装载image... 查看详情

ci/cd之jenkins+gitlab(代码片段)

...lab持续集成环境概述(1)什么是CI/CD(2)Jenkins概述(3)Gitlab概述(4)Gitlab和Github的区别(5)Jenkins配合Gitlab持续集成系统的工作流程二、部署持续集成环境(1)实验环境(2ÿ... 查看详情

通过jenkins与docker构建ci/cd基础架构(代码片段)

###前言提到容器平台,最早接触的便是LXC(LinuxContainer),是2010年刚刚接触虚拟化平台的时候,当时开源解决方案是xen的天下(后来KVM才后来者居上),且性能各方面都不弱,价值当时还不是移动互联网时代,业务量远远没有那么... 查看详情

docker——jenkins+git+registry构建自动化持续集成环境(ci/cd)(代码片段)

...就是持续集成(CI)及持续部署、交付(CD)。本文基于Jenkins+Docker+GitSvn实现一套CI自动化发布流程,同时支持撤回。  一、发布流程设计工作流程:开发人员提交代码到Git或Svn版本仓库;Jenkins人工/定时触发项目构建;Jenk... 查看详情

ci/cd之jenkins结合ansible部署apache(代码片段)

jenkins结合ansible部署apache演示环境部署步骤安装ansible创建新git项目ansible主控端配置jenkins测试配置用户设置jenkins部署部署测试在测试环境测试在生产环境部署建议演示环境server1 192.168.122.11 gitlab端 4G内存server2 192.168.122.12 j... 查看详情

ci/cd——构建企业级docker+jenkins+git+harbor流水线自动化持续集成持续发布平台(代码片段)

构建企业级Docker+Jenkins+Git+Harbor流水线自动化持续集成持续发布平台CI/CD是什么?持续集成(CI)/持续交付(CD)的优势自动化部署流程图GitGithubGitlab的区别前言:一些自己想说的话部署Docker+Jenkins+Git+Harbor流水... 查看详情

ci/cd——构建企业级docker+jenkins+git+harbor流水线自动化持续集成持续发布平台(代码片段)

构建企业级Docker+Jenkins+Git+Harbor流水线自动化持续集成持续发布平台CI/CD是什么?持续集成(CI)/持续交付(CD)的优势自动化部署流程图GitGithubGitlab的区别前言:一些自己想说的话部署Docker+Jenkins+Git+Harbor流水... 查看详情

ci/cd之jenkins结合ansible部署apache(代码片段)

jenkins结合ansible部署apache演示环境部署步骤安装ansible创建新git项目ansible主控端配置ansible主配置文件编写配置清单编写下载apache的playbook修改apache配置文件最终目录结构如下jenkins测试配置用户设置jenkins部署部署测试在测试环境测... 查看详情

ci/cd持续集成与持续交付(上)--------git,gitee远程共有仓库和gitlab私有仓库,jenkins(代码片段)

...结合远程共有仓库github/gitee三、远程私仓库gitlab搭建一、jenkins持续集成1jenkins简介2jenkins安装3.jenkins插件安装4.jenkins项目创建,每隔1分钟看gitlab的变化5.实时看gitlab的变化,g 查看详情

docker决战到底jenkins的安装与使用

...上会蹦出一个著名的CI工具,就是我们本篇实践记录中的jenkins。没错,jenkins能够帮助我们更容易的做到持续集成,但是也需要你不断的提交代码到主干,从而实现持续集成的目的。我经常在项目团队协作中提醒同事需要频繁的... 查看详情

在jenkins的帮助下让我们的应用ci与cd(代码片段)

...准备一下Centos7.x(连Linux系统都没有还整啥???)jdk1.8(Jenkins和Docker的运行都需要依赖jdk)Docker(项目最终运 查看详情