Docker 部署Jenkins代码

docker pull jenkinsci/blueocean:从 Docker Hub 拉取 jenkinsci/blueocean 镜像。blueocean 是 Jenkins 的一个插件,提供了现代化的用户界面

  • ​**-u root**:

    • 以 root 用户身份运行容器。
    • 这样 Jenkins 容器内的进程具有最高权限,可以执行需要 root 权限的操作(如管理 Docker 容器)。
  • ​**-d**:

    • 以后台模式(detached mode)运行容器。
    • 容器会在后台运行,终端不会阻塞。
  • ​**-p 8087:8080**:

    • 将容器的 8080 端口映射到宿主机的 8087 端口。
    • 这样可以通过 http://<宿主机IP>:8087 访问 Jenkins Web 界面。
  • ​**-p 50000:50000**:

    • 将容器的 50000 端口映射到宿主机的 50000 端口。
    • 这个端口用于 Jenkins 代理(agent)与 Jenkins 主节点(master)之间的通信。
  • ​**-v jenkins-data:/var/jenkins_home**:

    • 将宿主机上的 jenkins-data 目录(或 Docker 卷)挂载到容器内的 /var/jenkins_home 目录。
    • /var/jenkins_home 是 Jenkins 的主目录,包含 Jenkins 的配置、作业、插件等数据。
    • 通过挂载,可以持久化 Jenkins 数据,即使容器被删除或重启,数据也不会丢失。
  • ​**-v /var/run/docker.sock:/var/run/docker.sock**:

    • 将宿主机的 Docker 套接字(/var/run/docker.sock)挂载到容器内的相同路径。
    • Docker 套接字是 Docker 守护进程与客户端通信的接口。
    • 通过挂载,Jenkins 容器可以与宿主机的 Docker 守护进程通信,从而管理宿主机上的 Docker 容器(如构建镜像、启动容器等)。
  • ​**-v /usr/bin/docker:/usr/bin/docker**:

    • 将宿主机的 Docker 可执行文件(/usr/bin/docker)挂载到容器内的相同路径。
    • 这样 Jenkins 容器内可以直接调用宿主机的 Docker 命令(如 docker builddocker run 等)。
    • 如果没有挂载,Jenkins 容器内可能无法找到 Docker 可执行文件,导致 Docker 命令无法执行。
  • ​**jenkinsci/blueocean**:

    • 使用的 Docker 镜像名称。
    • jenkinsci/blueocean 是官方提供的 Jenkins 镜像,内置了 Blue Ocean 插件,提供了更现代化的用户界面和流水线可视化功能。
docker pull jenkinsci/blueocean
docker run -u root -d -p 8087:8080 -p 50000:50000 -v jenkins-data:/var/jenkins_home -v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker jenkinsci/blueocean 

如果Jenkins安装插件时出现以下错误,需要加一行命令跳过校验签名:

There were errors checking the update sites: Signature verification failed in update site &#039;default&#039; <a href='#' class='showDetails'>(show details)</a><pre
docker run -u root -d -p 8087:8080 -p 50000:50000 -e JAVA_OPTS="-Dhudson.model.DownloadService.noSignatureCheck=true" -v jenkins-data:/var/jenkins_home -v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker jenkinsci/blueocean 

Jenkins插件Updates URL国内镜像源:

https://mirrors.huaweicloud.com/jenkins/updates/update-center.json

虽然 update-center.json配置正确,已经修改配置为国内镜像源:,但插件下载时可能仍然尝试访问 updates.jenkins.io,报错如下:

java.net.unknownhostexception: updates.jenkins.io

如果jenkins是用容器化部署的:

# 进入您的Jenkins容器
docker exec -it <您的容器名称> bash

# 进入updates目录
cd /var/jenkins_home/updates/

# 执行替换命令(推荐使用此命令,它针对插件下载URL)
sed -i 's#https://updates.jenkins.io/download#https://mirrors.huaweicloud.com/jenkins#g' default.json

# 同时替换连接检查URL(将Google替换为Bing,这是一个常见做法以确保连通性检查成功)
sed -i 's#http://www.google.com#https://www.bing.com#g' default.json

不是容器化部署的,找到

/var/lib/jenkins/updates/default.json


然后直接执行批量替换命令即可
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值