ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Jenkins 环境搭建---基于 Docker

Jenkins 环境搭建---基于 Docker 每一个开上爱车的人都曾有一个慢慢攒钱的过程。 每一次查看进度都是一次小小的激励。微信扫码开始你的购车之路~前期准备提前安装jdk、maven、nodeJs如果需要的话创建 jenkins 环境目录用来当做挂载卷/data/jenkins/一拉取 Jenkins 镜像docker pull jenkins/jenkins:lts二设置 Jenkins挂载目录mkdir -p ~/jenkins_home sudo chown 1000:1000 ~/jenkins_home三启动 Jenkins 容器docker run -p 80:8080 -p 81:50000 \ --restart always \ -e JAVA_OPTS-Djava.io.tmpdir/xxxx/tmp \ -v /data/jenkins/tmp:/xxxx/tmp \ -v /data/jenkins/data:/var/jenkins_home\ -v /data/jenkins/apache-maven-3.8.8/:/opt/maven/apache-maven-3.8.8 \ -v /data/jenkins/repository:/opt/maven/repository \ -v /data/jenkins/jdk1.8.0_431:/opt/jdk/jdk1.8.0_431 \ -v /data/jenkins/node-v18.18.0-linux-x64:/opt/node/node-v18.18.0-linux-x64 \ -v /var/run/docker.sock:/var/run/docker.sock \ -v /usr/bin/docker:/usr/bin/docker \ -v /etc/localtime:/etc/localtime \ --name jenkins \ -d jenkins/jenkins:lts1. 端口映射-p 80:8080 -p 81:50000-p 80:8080将主机的 80 端口映射到容器的 8080 端口这通常是 Jenkins 的 Web 界面端口。-p 81:50000将主机的 81 端口映射到容器的 50000 端口这是 Jenkins 用于节点通信的端口。2. 重启策略--restart always--restart always确保容器在崩溃或重启后自动重启。此设置适用于生产环境中的容器确保容器始终运行。3. 环境变量-e JAVA_OPTS-Djava.io.tmpdir/xxxx/tmp-e JAVA_OPTS-Djava.io.tmpdir/xxxx/tmp设置 Java 启动参数指定临时文件目录为/xxxx/tmp。这对于自定义 Jenkins 临时文件存储位置很有用。4. 挂载卷-v /data/jenkins/tmp:/xxxx/tmp -v /data/jenkins/data:/var/jenkins_home -v /data/jenkins/apache-maven-3.8.8/:/opt/maven/apache-maven-3.8.8 -v /data/jenkins/repository:/opt/maven/repository -v /data/jenkins/jdk1.8.0_431:/opt/jdk/jdk1.8.0_431 -v /data/jenkins/node-v18.18.0-linux-x64:/opt/node/node-v18.18.0-linux-x64 -v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker -v /etc/localtime:/etc/localtime-v /data/jenkins/tmp:/xxxx/tmp将宿主机/data/jenkins/tmp目录挂载到容器中的/xxxx/tmp用于存储临时文件。-v /data/jenkins/data:/var/jenkins_home将宿主机 Jenkins 数据存储目录/data/jenkins/data挂载到容器中的 Jenkins 主目录/var/jenkins_home用于持久化 Jenkins 配置和数据。-v /data/jenkins/apache-maven-3.8.8/:/opt/maven/apache-maven-3.8.8将 Maven 版本 3.8.8 的目录挂载到容器中使 Jenkins 使用宿主机上的 Maven。-v /data/jenkins/repository:/opt/maven/repository将宿主机上的 Maven 本地仓库挂载到容器中的相应路径。-v /data/jenkins/jdk1.8.0_431:/opt/jdk/jdk1.8.0_431将宿主机上的 JDK 1.8 挂载到容器中确保 Jenkins 使用正确的 JDK。-v /data/jenkins/node-v18.18.0-linux-x64:/opt/node/node-v18.18.0-linux-x64将 Node.js 18.x 挂载到容器中使 Jenkins 可以使用此版本的 Node.js。-v /var/run/docker.sock:/var/run/docker.sock使容器能够与宿主机上的 Docker 守护进程通信允许 Jenkins 运行 Docker 容器。-v /usr/bin/docker:/usr/bin/docker将宿主机的 Docker 二进制文件挂载到容器中以便 Jenkins 使用宿主机的 Docker 运行命令。-v /etc/localtime:/etc/localtime同步容器的时间与宿主机的时间。四Jenkins 相关配置1.解锁 Jenkins首次登录 Jenkins 控制台时你需要解锁 Jenkins通常会显示一个页面提示你输入解锁密钥。步骤查找解锁密钥文件通常文件位于宿主机的/var/jenkins_home/secrets/initialAdminPassword。可以通过以下命令查看密钥cat /data/jenkins/data/secrets/initialAdminPassword2.安装推荐插件解锁后Jenkins 会引导你选择是否安装推荐的插件建议选择安装推荐插件它包括许多常用的插件如 Git、Maven 等。步骤在解锁后页面中选择Install suggested pluginsJenkins 会自动下载并安装所有推荐插件。3.创建管理员用户在安装完插件后Jenkins 会让你创建一个管理员用户。步骤填写管理员用户名、密码、全名和电子邮件地址。如果不想创建用户可以选择Continue as Admin以管理员身份继续。4.配置系统设置接下来你可以配置 Jenkins 的一些全局系统设置包括 JDK、Maven 和 Node.js 等工具的路径。配置 JDK进入 Jenkins 控制台点击Manage Jenkins管理 Jenkins。选择Global Tool Configuration全局工具配置。在JDK部分配置你在 Docker 中挂载的 JDK 1.8 路径JDK name给 JDK 取个名字比如jdk1.8。JAVA_HOME填写 JDK 路径例如/opt/jdk/jdk1.8.0_431。点击保存。配置 Maven在Global Tool Configuration页面找到Maven部分。配置你挂载的 Maven 3.8.8 目录Maven name可以设为maven3.8.8。MAVEN_HOME填写 Maven 的路径例如/opt/maven/apache-maven-3.8.8。点击保存。配置 Node.js在Global Tool Configuration页面找到NodeJS部分。配置你挂载的 Node.js 版本Name可以设为node-v18.18.0。NodeJS installation directory填写 Node.js 路径例如/opt/node/node-v18.18.0-linux-x64。点击保存5.配置 Jenkins 插件根据你的需求你可能需要安装一些特定的插件下面是常见的一些插件配置安装常用插件你可以在Manage Jenkins-Manage Plugins中安装以下插件Git Plugin用于 Git 仓库的集成。Docker Plugin如果你打算在 Jenkins 中运行 Docker 容器。Maven Integration Plugin用于支持 Maven 构建。NodeJS Plugin支持 Node.js 构建。配置 Docker 插件在Manage Jenkins-Configure System中找到Docker配置部分。在Docker Hosts部分添加 Docker 主机连接配置通常配置如下Docker Host URIunix:///var/run/docker.sock这是你在docker run命令中挂载的路径。点击Test Connection测试连接是否成功6创建连接Git 凭据用于拉取代码用五创建任务1点击 Dashboard 新视图比如开发环境视图2点击 Dashboard 新建任务新建后端maven任务3选择git凭据4选择代码url和分支6代码构建完成后执行相关shell根据每个项目不同执行不同的命令比如传统服务直接执行 java -jar 等命令直接启动服务比如K8S、Docker这种云服务可写打包镜像、推送镜像到 Docker 仓库、执行k8s相关命令拉取镜像进行容器启动等然后点击完成7构建代码右键找到刚才新建的任务即可进行构建
返回列表