通过Docker安装Jenkins

news/2025/1/24 13:23:31/文章来源:https://www.cnblogs.com/09-05/p/18689400

 

创建一个目录,用来存在Jenkins的数据

mkdir -p /dockerData/jenkins/jenkins-data
 

进入到/dockerData/jenkins 目录,我们在这创建Dockerfile

cd /dockerData/jenkins
vim Dockerfile
 

复制以下内容到文件Dockerfile 中

FROM jenkins/jenkins:2.375.1
USER root
RUN apt-get update && apt-get install -y lsb-release
RUN curl -fsSLo /usr/share/keyrings/docker-archive-keyring.asc \
https://download.docker.com/linux/debian/gpg
RUN echo "deb [arch=$(dpkg --print-architecture) \
signed-by=/usr/share/keyrings/docker-archive-keyring.asc] \
https://download.docker.com/linux/debian \
$(lsb_release -cs) stable" > /etc/apt/sources.list.d/docker.list
RUN apt-get update && apt-get install -y docker-ce-cli
USER jenkins
RUN jenkins-plugin-cli --plugins "blueocean:1.26.0 docker-workflow:563.vd5d2e5c4007f"
 

从Dockerfile中构建镜像

docker build -t myjenkins-blueocean:2.375.1-1 .
 

构建完成之后,使用docker images可以看到刚刚构建的镜像。

运行一个Jenkins容器

docker run \
-u root \
--name jenkins \
--restart=on-failure \
--detach \
--publish 8080:8080 \
--publish 50000:50000 \
--volume /etc/localtime:/etc/localtime \
--volume /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker \
--volume /dockerData/jenkins/jenkins-data:/var/jenkins_home \
myjenkins-blueocean:2.375.1-1
 

对当中的一些参数进行解释:

  • -u root 容器中的进程以root用户权限运行
  • --restart=on-failure如果容器由于错误而退出,则将其重新启动
  • --detach 保持容器在后台持续运行
  • --publish 8080:8080 映射宿主机8080端口给容器8080端口
  • --publish 50000:50000映射宿主机50000端口给容器50000端口
  • --volume /etc/localtime:/etc/localtime 容器时间如何与宿主机同步
  • --volume /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker 挂载宿主机的/var/run/docker.sock 给容器,这样Jenkins容器就可以调用宿主机的docker,创建其他的容器服务于CICD
  • --volume /dockerData/jenkins/jenkins-data:/var/jenkins_home 挂载Jenkins容器的数据到宿主机目录下

 

docker run -dt --name jenkins -p 8390:8080 -p 50000:50000 --privileged=true \
-v /vdc/data/jenkins:/var/jenkins_home \
-v /vdc/data/maven/apache-maven-3.9.2:/usr/local/maven \
-v /usr/local/java/jdk-17.0.9:/usr/local/jdk \
-v /vdb/server/pay/config:/vdb/server/pay/config \
-v /vdc/data/ftp_data/trace:/vdc/data/ftp_data/trace \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /usr/bin/docker:/usr/bin/docker \
jenkins/jenkins:lts

该命令用于启动一个名为 jenkins 的 Docker 容器,并进行了一系列配置。以下是命令的详细解释:
docker run: 用于启动一个新的容器。
-d: 后台运行容器(detached 模式)。
-t: 分配一个伪终端(通常与 -i 一起使用,这里单独使用 -t 可能是为了确保TTY分配)。
--name jenkins: 为容器指定名称为 jenkins。
-p 8390:8080: 将主机的 8390 端口映射到容器的 8080 端口,这是 Jenkins 的 Web UI 默认端口。
-p 50000:50000: 将主机的 50000 端口映射到容器的 50000 端口,这是 Jenkins 用于远程执行器连接的端口。
--privileged=true: 给予容器扩展权限,允许其执行一些特权操作,例如访问主机设备等。
-v /vdc/data/jenkins:/var/jenkins_home: 将主机的 /vdc/data/jenkins 目录挂载到容器的 /var/jenkins_home 目录,这是 Jenkins 的主目录,用于存储配置、插件和构建历史等数据。
-v /vdc/data/maven/apache-maven-3.9.2:/usr/local/maven: 将主机上的 Maven 安装目录挂载到容器中,以便在容器内可以直接使用该版本的 Maven。
-v /usr/local/java/jdk-17.0.9:/usr/local/jdk: 将主机上的 JDK 安装目录挂载到容器中,以便在容器内可以直接使用该版本的 JDK。
-v /vdb/server/pay/config:/vdb/server/pay/config: 将主机的支付服务配置目录挂载到容器中,可能是为了某些特定的构建或测试任务。
-v /vdc/data/ftp_data/trace:/vdc/data/ftp_data/trace: 将主机的 FTP 数据跟踪目录挂载到容器中,可能是为了日志或其他数据处理需求。
-v /var/run/docker.sock:/var/run/docker.sock: 将主机的 Docker 套接字文件挂载到容器中,使得容器内的进程可以与主机的 Docker 守护进程通信,从而管理主机上的 Docker 资源。
-v /usr/bin/docker:/usr/bin/docker: 将主机的 Docker 可执行文件挂载到容器中,使得容器内可以直接调用 Docker 命令。
jenkins/jenkins:lts: 使用 Jenkins 的长期支持版(LTS)镜像。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/874697.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

执子之手与子偕老:镌刻在时光深处的爱情传奇

执子之手与子偕老:镌刻在时光深处的爱情传奇“死生契阔,与子成说。执子之手,与子偕老。” 这出自《诗经・邶风・击鼓》的千古名句,如同一首跨越千年的悠扬情歌,萦绕在人类情感的天际,描绘出爱情最纯粹、最美好的模样,承载着人们对永恒相伴、不离不弃的深深期许。它不仅仅…

二维数点问题

二维数点问题。P10814 【模板】离线二维数点 询问区间 \([l,r]\) 内,在值域为 \([0,x]\) 中数的个数。 想象这是个二维平面,我们要求的就是矩形内点的个数。通常用 cdq 做,将询问拆成两个点,将点按照x坐标排序,按照y坐标加入到树状数组中(为了满足第二条限制),这时就依次…

CS162 23Fall总结

CS 162 23Fall Lab 总结 PintOS是一个x86架构的教育用操作系统,它支持多线程,加载并运行用户程序,以及文件系统。骨架代码只提供了很简单的实现,本Lab需要丰富并增强这些模块的功能。本实验提供Bochs2和QEMU3模拟器模拟x86 CPU和相应外设来运行并调试PintOS.PintOS源码结构…

《汇编语言》阅读笔记

如题汇编语言 首先,我必须赞扬王爽老师,这是我见过写的最好的教科书了. 然后要注意,汇编语言这本书的前提是8086PC机十六位处理器.还要学x86和x64以及其他奇奇怪怪的架构的汇编 全称 AH&AL=AX(accumulator):累加寄存器 BH&BL=BX(base):基址寄存器 CH&CL=CX(co…

【unity】学习制作2D横板冒险游戏-3-

添加野猪添加刚体2D组件,碰撞组件,该碰撞组件是确保野猪能跟地面碰撞添加玩家图层和敌人图层,并应用,使野猪和玩家不会彼此被推着走碰撞剔除中选择Player和Enemy再增加一个碰撞组件当作触发器,设置如下,该碰撞组件是确保人物和怪物的互动基本属性及其计算 再如图路径下创建…

远控流畅游戏,我用过最棒工具ToDesk

孤独乏味人又懒,能够干嘛来消遣?手游、端游都好玩,没有高端设备在身边,也是能够轻松玩!究竟怎么实现的?其实就是通过ToDesk这种专业的远程控制软件来随时随地操作异地的目标设备从而帮助实现更丝滑给力的远程游戏畅玩体验!当然,用户能够借助完成这需求的辅助工具并不止…

C# Odbc Informix读取中文方法

一。 部署好informix服务器后 二。 在windows主机安装好Informix Client-SDK, 这个软件客户端时免费的,可以在官网下载 三。配置好ODBC连接 1.用户名密码服务端口自行填写 2.关于客户语言的配置要使用以下参数: Client Locale -> en_US.CP1252 Database Locale -> en_…

ToDesk远程连接几项模式区别何在?

对于很多用过ToDesk远程控制软件进行随时随地跨系统、跨设备操作的小伙伴们来说,它无疑能解决做种场景下问题,无论是在职场工作中,还是日常生活中,均能带来很多便捷!虽然轻松使用很简单,但很多所不知道的是其实应对不同的情况,选择不同的连接模式更有益!以下木木小编就…

如何在网站后台修改首页?

修改网站后台首页通常涉及对后台管理界面的调整。以下是详细步骤:登录后台:使用管理员账号登录网站后台管理系统。 进入模板管理:在后台管理系统中找到“模板管理”或“模板文件管理”选项。 编辑模板文件:找到后台首页的模板文件(如index.htm或index.php),使用代码编辑…

一些关于软件测试中登录模块的测试用例

以下是一份针对软件测试中登录模块较为完整的测试用例,涵盖了各种常见情况,尽量保证较高的覆盖率:一、功能测试1. 正常登录 2. 用户名错误 3. 密码错误 4. 用户名和密码都错误 5. 用户名和密码为空 6. 仅用户名为空 7. 仅密码为空 8. 用户名和密码长度极限值 9. 记住用户名…

如何修改网站管理员admin的信息?

登录网站后台:使用管理员账号(通常是admin)登录到网站的后台管理界面。进入用户管理页面:在后台管理界面中,找到“用户”、“用户管理”或类似的菜单选项,点击进入用户管理页面。找到管理员账号:在用户管理页面中,找到管理员账号(通常是admin),点击账号名称或编辑按…

如何在网站上修改源代码?

要在网站上修改源代码,您可以按照以下步骤进行操作:确定要修改的代码:确定您想要修改的网站源代码文件。 找到代码文件:根据您的网站结构,找到包含要修改代码的文件。 编辑代码文件:使用文本编辑器或专业的网页设计工具,编辑代码文件中的代码。 保存修改:修改完成后,保…