使用Docker部署Jenkins(Java版)
目录
使用Docker部署Jenkins
技术支持
在本篇文章中需要用到的软件支持如下:
- Docker:标题上有说使用Docker部署,所以Docker必然不可缺少,没有了解的话,可以看下博客中的Docker那篇文章,你的服务器上没有安装Docker的话是无法进行安装Jenkins操作的。
- Maven:这个是部署Java项目所需要的,如果你要部署的项目不是,可以忽略。
- JDK:这个是部署Java项目所需要的,如果你要部署的项目不是,可以忽略。
- NodeJs:这个是部署前端项目所有需要的,如果你要部署的项目不是,可以忽略。我这里用的是nvm下载的nodejs,你们也可以选择直接下载nodejs。
1. 拉取镜像
首先打开DockerHub搜索你想要的镜像,这里直接搜索 Jenkins,这里打不开就上点魔法。
进入后,可以直接点击复制命令,然后到你的服务器拉取镜像即可。值得注意的是,现在的新版Jenkins已经不支持JDK8版本了,所以你可能要自行下载JDK的高版本,推荐 11 17 21的长期支持版本。
当然还有个更好的办法,可以直接选择携带JDK版本的镜像直接使用,这里我选择的是JDK7的版本。该版本中本身携带了JDK17和GIT,非常方便。版本选择如下:
接下来把你复制的命令直接到你的服务器,直接运行即可。
等他下载完成,可以使用查看镜像命令查看镜像
docker images
2. 准备工作
我要部署的是Java项目,所以我要准备maven,如果你的项目用不到,可以跳过本步骤
2.1 配置Maven
打开Maven官网 进行下载
下载完成后,手动上传到你的服务器
解压压缩包:
tar -zxvf 压缩包名称
配置环境变量,直接在编辑文件 /etc/profile
添加配置
# maven 环境变量
export MAVEN_HOME=/export/maven/apache-maven-3.9.6
export PATH=$MAVEN_HOME/bin:$PATH
配置完成后,你可以通过下面的命令查看maven的版本,如果正常出现版本号则是正常。如果提示你没有JDK环境则是要配置JDK环境。
mvn -v
我这里没有单独安装jdk,我直接使用的是Jenkins内部的jdk 把jdk挂载出来以后 配置到本机上配置环境变量即可。你们也可以自己单独安装下JDK,这里就不再赘述了,直接展示下jdk配置就好了。
**注意:**如果你也想使用Jenkins内部的jdk拿来用,你要先启动容器,在进行配置全局变量。
# jenkins 内部的JDK17
export JAVA_HOME=/var/lib/docker/volumes/jenkins_jenkins-jdk17/_data
export PATH=$JAVA_HOME/bin:$PATH
3. 启动容器
下面这里是我使用docker-compose启动容器的脚本。
version: '3'
volumes:
jenkins-data:
jenkins-jdk17:
services:
jenkins:
image: jenkins/jenkins:latest-jdk17
# 以特权模式运行容器,允许容器内的进程拥有宿主机上的所有权限。这可以用来执行一些需要更高权限级别的操作
privileged: true
volumes:
# 这里是Jenkins的数据存储位置
- jenkins-data:/var/jenkins_home
# 把Jenkins内部自带的jdk拿出来用
- jenkins-jdk17:/opt/java/openjdk
# 把maven映射到容器内部
- /export/maven/apache-maven-3.9.5:/usr/local/maven
# nodejs映射到容器内部
- /export/nvm/nvm-0.39.5/versions/node/v14.21.3:/usr/local/nodejs
# Docker套接字文件挂载到容器中,容器中可以与宿主机中docker通信
- /var/run/docker.sock:/var/run/docker.sock
# 可以使用和管理宿主机上的Docker引擎
- /usr/bin/docker:/usr/bin/docker
ports:
- 8080:8080
- 50000:50000
container_name: jenkins
mem_limit: 800m # 内存最大为800MB
restart: "always"
启动完成后,可以查看下容器的状态:
docker ps
4. 配置Jenkins
启动没问题以后,你就可以直接打开你的Jenkins了,访问地址就是你服务器ip:你设置的端口
,如果进不去,请自行检查你的Jenkins是否启动成功,和你服务器的防火墙。
- 进来后的也买你如下:
- 按照他的要求去找到密码即可,因为启动的时候,我已经把这个数据文件夹挂载出来了,所以直接到数据卷中查找即可。
# 查看所有数据卷
docker volume ls
找到Jenkins数据的数据卷:
查看数据卷的地址,进入找到对应的密码:
# 查看数据卷的信息
docker volume inspect jenkins_jenkins-data
这是我查看密码的步骤:
- 复制你的密码到浏览器的Jenkins中,进行下一步
- 安装推荐的插件
安装完成之后,创建你的账号即可:
至此你的Jenkins就安装好了,至于具体的配置本篇文章就不在赘述了:
5. 遇到的BUG
5.1 Maven依赖下载权限不足
在构建项目的时候需要下载maven依赖,会出现如下的问题:
这个问题是由于你设置的maven本地仓库的权限问题。容器内部的权限等级没有这么高,而你如果是管理员创建的仓库文件夹,就会导致 容器内部下载的依赖无法写入导致问题。
解决方案:直接在你的宿主机,设置本地仓库的权限,让其他人员也能写入即可。
5.2 构建Docker镜像权限不足
使用DockerFile构建你的项目镜像的时候,报错提示:
类似这种就是你的Jenkins容器中的Docker权限不足,因为之前的Docker是挂载进去的,容器呢不没有这么高的权限导致无法构建项目。
解决方案:在你的宿主机内,设置docker.socket的权限。
chmod -R 777 /var/run/docker.sock
设置完再去运行你的流水线。
原文地址:https://blog.csdn.net/m0_63684495/article/details/139003471
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!