当前位置:网站首页>搭建jenkins环境并自动关联打包好的工程jar进行自动发布
搭建jenkins环境并自动关联打包好的工程jar进行自动发布
2022-06-29 06:40:00 【喜欢火影的木易杨】
本文着重介绍如何使用Docker搭建一个jenkins环境,并且介绍怎么使用这个jenkins进行自动构建、自动发布等流水线作业。
一.Docker环境下搭建jenkins
我们打开前面发起来的Docker环境界面,总体步骤是:拉取jenkins镜像-->设置镜像挂载目录和授权-->挂载目录映射、开启端口映射、docker运行jenkins镜像-->查看jenkins镜像运行情况-->查看jenkins运行日志-->windows虚拟机配置端口映射-->浏览器访问jenkins控制台。
(1)拉取jenkins镜像:
在docker中,主要是加载一个个的镜像(可以理解为一个个服务的开箱即用文件)进行运行,在运行这些镜像之前,就需要先从镜像仓库中拉取这些镜像,运行后的镜像在docker容器中独立存在,不同docker容器之间互不干扰。
docker pull jenkins/jenkins
可以看到docker会自动为我们拉取一个最新版本的jenkins镜像,当然可以自行设定拉取的版本

docker images
查看拉取的镜像

接下来是要设置jenkins的挂载目录,我们使用/usr/local/jenkins目录作为挂载目录,并设置权限
mkdir -p /usr/local/jenkins
chmod 777 /usr/local/jenkins
接下来就是挂载目录映射、开启端口映射、docker运行jenkins镜像
docker run -d -p 8080:8080 -v /usr/local/jenkins:/var/jenkins_home -v /etc/localtime:/etc/localtime --restart=always -u root --name my_jenkins jenkins/jenkins
上面的命令就是直接使用docker运行这个jenkins镜像了,需要重点介绍:
(1)-p 8080:8080,需要特别指出的是jenkins内部默认使用8080端口进行启动,也就是说我们需要默认开启宿主机和docker容器内8080端口之间的映射,让宿主机和这个docker容器的8080端口可以互相访问。
(2)-v /usr/local/jenkins:/var/jenkins_home,需要注意的是这个docker容器内的jenkins镜像实际上也是一个文件系统,我们可以使用命令进入到docker的镜像内部
docker ps -a
docker exec -it <Container ID> /bin/bash
能发现我们是可以通过cd到达这个jenkins的/var/jenkins_home目录下的,也就是说每个docker容器内部就是一个独立的linux环境系统,进入后可通过exit退出docker容器内部。

因此,上面的-v /usr/local/jenkins:/var/jenkins_home就是将docker外部宿主机的挂载目录,与docker容器内部实际的jenkins目录进行挂载绑定,使我们可以通过访问宿主机的挂载目录就可以直接引用到docker容器内部的jenkins。
(3)-u root --name my_jenkins jenkins/jenkins,我们需要使用管理员账号root进行操作,然后给这个转载到docker内部的镜像取一个名字my_jenkins方便区分发布的多个相同镜像。
通过上面的完整运行命令,就可以在docker容器中运行一个jenkins镜像实例了。
docker ps -al

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3342f36002f3 jenkins/jenkins "/usr/bin/tini -- /us" 21 hours ag Up 22 hours 0.0.0.0:8080->8080/tcp, 50000/tcp my_jenkins
可以看到jenkins实例已经启动,并且也进行了端口绑定。
docker logs my_jenkins
查看镜像的运行日志,我们能看到运行情况,同时记住运行成功后会有一个密码(红框标出),这个密码就是用来第一次登陆jenkins控制台的密码。


但是,我们在电脑浏览器访问localhost:8080却会发现无法打开jenkins控制台,那是因为虽然Docker环境--Docker内部的端口映射已经关联,但是我们的电脑主机VirtualBox和Docker环境的端口映射却是没有打开的,也就是说是用电脑浏览器访问8080实际上是到达不了虚拟机的8080的,因此我们还需要在VirtualBox中进行端口配置(当然对于linux实物机器来说就不需要这一层操作了)。
打开VirtualBox--设置--网格--连接方式可以为NAT--高级--端口转发--
配上指定的端口映射


这样就可以通过浏览器访问localhost:8080打开jenkins控制台了,第一次登陆的时候,密码在

输出上面启动日志中红框标记的密码,就可以登陆进去了,使用推荐配置安装等待,然后新建一个用户即可。


下面就可以在jenkins上创建发布流水线了。
边栏推荐
- 循环嵌套问题:为什么大循环在内,小循环在外可以提高程序的运行效率
- SQL 注入绕过(六)
- JMeter can't find its own jar package imported by BeanShell
- Reflection modification final
- KingbbaseES V8R6集群维护案例之---集群之间数据迁移
- Detailed explanation of route (Jiuyang Scripture)
- Compiling principle: the king's way
- 呕心沥血总结出来的MySQL常见错误以及解决方法(一)
- National Security Agency and CISA kubernetes reinforcement guidelines - new content in version 1.1
- TREE ALV 展开Node或者点击Toolbar按钮时DUMP(CL_ALV_TREE_BASE==============CP|SET_ITEMS_FOR_COLUMN)
猜你喜欢

Roblox sword nine sword two

Appium automation test foundation ADB common commands (III)

Appium 环境搭建

【FreeRTOS】中断机制

ShapeShifter: Robust Physical Adversarial Attack on Faster R-CNN Object Detector

matlab 多普勒效应产生振动信号和处理

What you should know about databases
![[FreeRTOS] interrupt mechanism](/img/ab/9b1d07048b4631d7cc95db99ed529a.png)
[FreeRTOS] interrupt mechanism
What is a Test Architect

软件测试鸾音鹤信
随机推荐
4 years of working experience, and you can't tell the five communication modes between multithreads. Can you believe it?
Appium automation test foundation ADB common commands (II)
Kingbasees v8r6 cluster maintenance case - data migration between clusters
路由详解(九阳真经)
Blue Bridge Cup - minimum frame
Alicloud access resource: nosuchkey
Reflection modification final
Oracle 批量插入数据-插入民族数据
SAP ui5 Beginner (I) Introduction
cv2.cvtColor
KingbaseES V8R6集群维护案例之--单实例数据迁移到集群案例
From XX import* is equivalent to from XX import *, and no space is required
解题-->在线OJ(十三)
Kingbasees coping with transaction rollback caused by too fast growth of table age
Schnuka: 3D machine vision inspection system 3D vision inspection application industry
tf.to_int64
cv2.cvtColor
What tools do testers need to know
Software testing
九州云助力内蒙古“东数西算”工程,驱动测绘行业智慧新生态