欢迎光临
我们一直在努力

30分钟快速1:1 复刻企业级 DevOps 架构实战(四)实现Jenkins流水线(中)

Dockerfile自制一个自带docker的Jenkins

  • 1. 先在你的 **DevOps 文件夹里新建 2 个文件**
    • ① 第一个文件:`Dockerfile`(无后缀名)
    • 1. `FROM jenkins/jenkins:lts-jdk17`
    • 2. `USER root`
    • 3. 安装 Docker 客户端(核心代码)
    • 4. 权限配置(最重要!不然用不了 docker)
    • 5. `USER jenkins`
    • ② 第二个文件:`docker-compose.yml`
  • 2. 你的文件夹结构现在是这样
  • 3. 直接运行 **一条命令** 自动构建 + 启动
    • 命令分两种:
  • 4. 验证 Docker 是否可用(你最关心的)
  • 5. 获取 Jenkins 初始密码
    • 核心讲明白,超级简单
      • 1. 这个Dockerfile干啥的?
    • 2. 对比你之前的所有坑
    • 3. 原理一句话
    • 4. 后续操作极简
    • 5. 以后想升级Jenkins?

1. 先在你的 DevOps 文件夹里新建 2 个文件

你现在的路径是:

/mnt/d/DevOps/

在这个文件夹里,新建两个文件:

① 第一个文件:Dockerfile(无后缀名)

内容直接复制我这段:

FROM jenkins/jenkins:lts-jdk17
USER root

# 安装 docker 客户端
RUN curl -fsSL https://download.docker.com/linux/static/stable/x86_64/docker-26.1.4.tgz \\
| tar xzvf – –strip-components=1 -C /usr/local/bin

# 给权限
RUN groupadd -f docker && usermod -aG docker jenkins
USER jenkins

🟢 逐行超级详细解释

1. FROM jenkins/jenkins:lts-jdk17

意思:

以 官方最新稳定版 Jenkins(LTS长期支持版)+ JDK17 作为基础系统。

  • 不是老旧的 blueocean
  • 不是第三方镜像
  • 官方、最新、安全、可升级

2. USER root

意思:

切换成 管理员(root),因为安装软件必须要管理员权限。

Jenkins 默认是普通用户,不能装 docker,所以必须先切 root。

3. 安装 Docker 客户端(核心代码)

RUN curl -fsSL https://download.docker.com/linux/static/stable/x86_64/docker-26.1.4.tgz \\
| tar xzvf – –strip-components=1 -C /usr/local/bin

大白话:

从 Docker 官网下载 docker 命令行工具, 解压并直接安装到系统里, 让 Jenkins 内部可以直接使用 docker 命令。

注意: 这里只装 docker 客户端(命令),不装 Docker 引擎, 因为我们要共用宿主机的 Docker。

4. 权限配置(最重要!不然用不了 docker)

RUN groupadd -f docker && usermod -aG docker jenkins

意思:

  • groupadd -f docker → 创建 docker 用户组
  • usermod -aG docker jenkins → 把 jenkins 用户加入 docker 组
  • 作用: 让 Jenkins 进程有权限访问宿主机的 Docker,不报错 permission denied。

    5. USER jenkins

    意思:

    安装完成后,切回普通用户 jenkins 运行系统。

    这是官方安全规范,不使用 root 运行 Jenkins,避免安全风险。

    ② 第二个文件:docker-compose.yml

    内容直接复制我这段:

    jenkins:
    build: . # 重点:用本地Dockerfile构建
    image: my–jenkins–docker:latest # 你自己的镜像名字
    ports:
    – "8080:8080"
    – "50000:50000"
    volumes:
    – jenkins–data:/var/jenkins_home
    – /var/run/docker.sock:/var/run/docker.sock
    restart: always
    user: root

    build: . → 去当前目录找 Dockerfile image: my-jenkins-docker:latest → 把构建出来的镜像,命名成这个名字!

    2. 你的文件夹结构现在是这样

    /mnt/d/DevOps/
    ├── Dockerfile
    └── docker-compose.yml

    3. 直接运行 一条命令 自动构建 + 启动

    进入目录:

    cd /mnt/d/DevOps

    启动:

    docker-compose up -d –build

    等待 1~2 分钟 它会: ✅ 自动拉取最新官方 Jenkins ✅ 自动内置 Docker 客户端 ✅ 自动配置好权限 ✅ 直接启动完成

    ---

    jenkins:
    build: .
    image: my–jenkins–docker:latest
    ports:
    – "8080:8080"
    – "50000:50000"
    volumes:
    – jenkins–data:/var/jenkins_home
    – /var/run/docker.sock:/var/run/docker.sock
    restart: always
    user: root

    配置文件:一次写好,永久不变 因为:build: . 只有你运行 –build 时才会生效 平时 up -d 不会重新构建,不会影响速度! image: my-jenkins-docker:latest** 就是你已经构建好的镜像名字 以后直接用这个现成镜像!

    命令分两种:

  • 第一次 / 修改了 Dockerfile

    docker-compose up -d –build

  • 以后所有正常启动

    docker-compose up -d

  • 4. 验证 Docker 是否可用(你最关心的)

    docker exec -it devops-jenkins-1 bash

    进入容器后直接输入:

    docker info

    能出来版本信息 = 成功!

    5. 获取 Jenkins 初始密码

    docker exec devops-jenkins-1 cat /var/jenkins_home/secrets/initialAdminPassword

    报错 部分插件由于缺少依赖无法加载。要恢复这些插件提供的功能,需要修复这些问题并重启 Jenkins。依赖错误: Pipeline (608.v67378e9d3db_1) Plugin is missing: pipeline-stage-step (312.v8cd10304c27a_) Pipeline: Declarative (2.2277.v00573e73ddf1) Plugin is missing: pipeline-model-extensions (2.2277.v00573e73ddf1) Plugin is missing: pipeline-stage-step (322.vecffa_99f371c) SSH Build Agents plugin (3.1097.v868116049892) Plugin is missing: trilead-api (2.209.v0e69b_c43c245) 由于一个或者多个上面的错误导致这些插件无法加载。修复后插件将会再次加载。 间接依赖插件: Pipeline (608.v67378e9d3db_1) Failed to load: Pipeline: Declarative (pipeline-model-definition 2.2277.v00573e73ddf1) Pipeline Graph View Plugin (871.vd450b_6eb_d1e1) Failed to load: Pipeline: Declarative (pipeline-model-definition 2.2277.v00573e73ddf1)

    🚀 第 1 步:先进入你的 Jenkins 容器

    docker-compose exec jenkins bash

    🚀 第 2 步:切换国内清华镜像源(必须执行!)

    export JENKINS_UC=https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
    export JENKINS_UC_DOWNLOAD=https://mirrors.tuna.tsinghua.edu.cn/jenkins

    🚀 第 3步:直接运行自动修复插件命令 复制粘贴这一整行进去执行:

    jenkins-plugin-cli –plugins \\
    pipeline-stage-step \\
    pipeline-model-extensions \\
    pipeline-model-definition \\
    trilead-api \\
    workflow-aggregator \\
    docker-plugin \\
    docker-workflow \\
    cloudbees-folder \\
    structs \\
    command-launcher \\
    ssh-slaves

    这是 Jenkins 官方自带的插件安装工具,自动解决所有依赖!

    🚀 第 4步:重启 Jenkins

    docker-compose restart jenkins

    ✅ 完成! 再打开 Jenkins → 插件管理 所有红色错误全部消失! Pipeline、Docker、SSH 节点全部正常使用!


    你亲手「自制」了一个: ✅ 最新版Jenkins ✅ 永久自带Docker客户端 ✅ 不老旧、不淘汰、不废弃 ✅ 国内稳定 ✅ 永远不踩版本坑

    核心讲明白,超级简单

    1. 这个Dockerfile干啥的?

  • 以官方最新Jenkins LTS 为基础(不是老blueocean)
  • 进入容器root权限
  • 下载纯净Docker客户端压缩包
  • 解压到系统目录,直接装docker命令
  • 配置权限,让Jenkins用户能用docker
  • 切回Jenkins用户
  • 👉 等于:自己定制一个「自带Docker」的Jenkins镜像

    2. 对比你之前的所有坑

    方案缺点结论
    旧blueocean镜像 版本老旧、证书过期、插件冲突、废弃 ❌ 淘汰
    第三方小众镜像 403、证书错误、拉不下 ❌ 废
    原版Jenkins+手动装docker 重启丢失、麻烦 ❌ 麻烦
    你现在自制镜像 无坑、永久、最新、自带docker ✅ 终极方案

    3. 原理一句话

    别人的「自带Docker Jenkins」是别人打包的旧垃圾; 你现在是「自己打包最新版Jenkins+自带Docker」, 全网独一无二,稳定无敌。

    4. 后续操作极简

  • 执行:docker-compose up -d –build
  • 自动构建自制镜像
  • 进容器输入 docker 命令 → 直接能用
  • 装Docker Pipeline插件,直接写镜像构建流水线
  • 5. 以后想升级Jenkins?

    只需要改Dockerfile里的版本:

    FROM jenkins/jenkins:lts-jdk17

    换成新版本tag,重新 –build 就行。

    赞(0)
    未经允许不得转载:171主机测评 » 30分钟快速1:1 复刻企业级 DevOps 架构实战(四)实现Jenkins流水线(中)
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址