相关文章推荐
叛逆的充电器  ·  Jenkins+Sonar质量门禁【实践篇- ...·  昨天    · 
胆小的茴香  ·  超详细,自动化测试接入Jenkins+Son ...·  昨天    · 
精明的开心果  ·  运行llama2 70B ...·  1 年前    · 
有胆有识的海龟  ·  SqlServe查看锁表和解锁_sqlser ...·  1 年前    · 
风度翩翩的钱包  ·  redis是不是每执行一条命令就立即持久化 ...·  2 年前    · 
爱看球的海龟  ·  如何:解除嵌套任务的包装 | ...·  2 年前    · 
谦虚好学的罐头  ·  android bluetooth ...·  2 年前    · 
Code  ›  基于Docker 5分钟解决Jenkins环境搭建问题开发者社区
docker 镜像 容器技术 jenkins
https://cloud.tencent.com/developer/article/1973138
冷冷的胡萝卜
1 年前
作者头像
一行Java
0 篇文章

基于Docker 5分钟解决Jenkins环境搭建问题

前往专栏
腾讯云
开发者社区
文档 意见反馈 控制台
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
发布
首页
学习
活动
专区
工具
TVP 最新优惠活动
返回腾讯云官网
社区首页 > 专栏 > 用户9257747的专栏 > 基于Docker 5分钟解决Jenkins环境搭建问题

基于Docker 5分钟解决Jenkins环境搭建问题

作者头像
一行Java
发布 于 2022-04-06 17:02:00
563 0
发布 于 2022-04-06 17:02:00
举报

Jenkins;一款基于Java开发的开源 持续集成 工具,可以让打包、发布、自动化测试变的更加简便;由于使用标准的安装会存在一些插件下载、安装、更新的问题;导致很多人还在门口就被拦回去了,无法领略到其优秀的风采。因此这里使用Docker安装一个中国定制版的Jenkins;保证你能在5分钟内就解决掉环境搭建的问题。

不会Docker的可以参考下面的文章安装Docker:

CentOS 7下安装Docker及基础操作

基于VirtualBox搭建Linux(CentOS 7)虚拟机环境(学习必备技能)

Docker安装Jenkins安装

https://hub.docker.com/r/jenkinszh/jenkins-zh

  • 下载基础镜像
docker pull jenkinszh/jenkins-zh
  • 制作镜像

思考一个问题,我们现在要做是在Docker里面部署Jenkins;Jinkins是用来做持续集成的,后续可能用他来制作Docker镜像;制作Docker镜像必须得有Docker环境;难道我们得在Jenkins容器里面再部署一个Docker?当前Docker就是运行在宿主机的Docker里面,我们能否在Jenkins容器里面使用宿主机的Docker?当然是可以的,按以下方式制作一个镜像。 创建一个Dockerfile;添加以下内容

FROM jenkinszh/jenkins-zh
USER root
#清除了基础镜像设置的源,切换成阿里云的jessie源
RUN echo '' > /etc/apt/sources.list.d/jessie-backports.list \
  && echo "deb http://mirrors.aliyun.com/debian jessie main contrib non-free" > /etc/apt/sources.list \
  && echo "deb http://mirrors.aliyun.com/debian jessie-updates main contrib non-free" >> /etc/apt/sources.list \
  && echo "deb http://mirrors.aliyun.com/debian-security jessie/updates main contrib non-free" >> /etc/apt/sources.list
#更新源并安装缺少的包
RUN apt-get update && apt-get install -y libltdl7
ARG dockerGid=999
RUN echo "docker:x:${dockerGid}:jenkins" >> /etc/group \
USER jenkins
## 以下添加了一些jenkins常规要用到的软件
# 进入到src目录
RUN cd /usr/local/src
# 下载maven
RUN wget https://mirrors.aliyun.com/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
# 如果通过构建的时候下载慢,可以在电脑上先下载,然后通过下面的指令
# ADD apache-maven-3.6.3-bin.tar.gz /usr/local/src
# 下载nodejs
RUN wget https://nodejs.org/dist/v14.15.0/node-v14.15.0-linux-x64.tar.xz
# 如果通过构建的时候下载慢,可以在电脑上先下载,然后通过下面的指令
# ADD node-v14.15.0-linux-x64.tar.xz /usr/local/src
# 解压maven
RUN tar -zxvf apache-maven-3.6.3-bin.tar.gz
# 删除maven的安装包
RUN rm -rf apache-maven-3.6.3-bin.tar.gz
# 将maven包移动到/usr/lcal目录下
RUN mv apache-maven-3.6.3 /usr/local/
# 解压nodejs
RUN tar -xvf node-v14.15.0-linux-x64.tar.xz
# 删除maven的安装包
RUN rm -rf node-v14.15.0-linux-x64.tar.xz
# 将nodejs移动到/usr/lcoal
RUN mv node-v14.15.0-linux-x64 /usr/local/
# 设置环境变量,将maven和nodejs的环境变量设置到现有PATH中去
ENV PATH=$PATH:/usr/local/apache-maven-3.6.3/bin:/usr/local/node-v14.15.0-linux-x64/bin
# nodejs设置淘宝的镜像源
RUN npm config set registry https://registry.npm.taobao.org
# 查看镜像源
RUN npm config get registry
# 安装git
RUN apt-get install -y git
# 测试是否安装成功
RUN git --version
  • 上面的Dockerfile不仅是配置了Jenkins使用宿主机Docker;同时也将常用的maven、nodejs、git一并整合进去了;下载的过程可能会比较的慢,如果实在更新不了,可以先下载,然后通过上面提到的ADD的方式添加到容器内部; Maven:https://mirrors.aliyun.com/apache/maven/maven-3/ nodejs:https://nodejs.org/en/download/
  • 构建镜像 构建过程可能比较的漫长 因为存在多个安装包的下载过程 构建后的截图也只截取了其中的一部分
docker build -t jenkinszh/jenkins-zh-share-1 .
  • 运行镜像
docker run \
-p 8880:8080 \
-p 50000:50000 \
--name=jenkins \
--restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v $(which docker):/usr/bin/docker \
-v /var/jenkins/data:/var/jenkins_home \
-v /usr/local/apache-maven-3.6.3/repository:/usr/local/apache-maven-3.6.3/repository \
-d jenkinszh/jenkins-zh-share-1

-p 8880:8080 -p 50000:50000  分别将8080和5000映射到宿主机的8880和50000上

-v /var/run/docker.sock:/var/run/docker.sock -v $(which docker):/usr/bin/docker  是共享宿主机Docker的映射

-v /var/jenkins/data:/var/jenkins_home jenkins配置相关数据的映射

-v /usr/local/apache-maven-3.6.3/repository:/usr/local/apache-maven-3.6.3/repository 容器本地资源库的映射

  • 测试各个环境变量是否正常
docker exec -it 容器id git --version
docker exec -it 容器id mvn --version
docker exec -it 容器id java -version
docker exec -it 容器id node -v
docker exec -it 容器id npm -v

基础配置

  • 进入jenkins http://192.168.1.222:8880

ip根据个人实际情况来

  • 查看默认密码
# 进入容器
docker ps
docker exec -it 容器id /bin/bash
cat /var/jenkins_home/secrets/initialAdminPassword
  • 安装插件

使用中国定制版的jenkins,你会发现,插件的安装非常的顺利, 一片绿 ;使用官方的版本,这里就是 一片红 先安装推荐的插件,然后后续的使用过程中;根据自己的需要选择性安装

  • 设置管理员密码

默认一般都是创建一个jenkins的用户作为管理员

只要插件的下载、安装解决了,就解决了使用过程中的一座大山。

  • 修改maven的镜像仓库 我们在镜像构建的时候,就已经指定了nodejs的镜像源为淘宝;但是maven的镜像源依然是没有修改的,因此这里配置以下Maven的镜像源
    • 第一步,将jenkins容器中的maven配置文件settings.xml拷贝出来
docker cp 容器ID:/usr/local/apache-maven-3.6.3/conf/settings.xml ./

修改maven仓库的地址;便于将仓库地址持久化

<localRepository>/usr/local/apache-maven-3.6.3/repository</localRepository>

修改阿里仓库地址

在mirrors节点下添加以下配置

   <mirror>
      <id>alimaven</id>
      <name>aliyun maven</name>
 
推荐文章
叛逆的充电器  ·  Jenkins+Sonar质量门禁【实践篇-pipeline版】 - windysai
昨天
胆小的茴香  ·  超详细,自动化测试接入Jenkins+Sonar质量门禁实践开发者社区
昨天
精明的开心果  ·  运行llama2 70B 需要哪些硬件配置_AIGC-CSDN问答
1 年前
有胆有识的海龟  ·  SqlServe查看锁表和解锁_sqlserver锁表查询-CSDN博客
1 年前
风度翩翩的钱包  ·  redis是不是每执行一条命令就立即持久化 redis定时每天三点执行_mob6454cc770d06的技术博客_51CTO博客
2 年前
爱看球的海龟  ·  如何:解除嵌套任务的包装 | Microsoft Learn
2 年前
谦虚好学的罐头  ·  android bluetooth headset getprofileproxy returning null - Stack Overflow
2 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号