服务器运维之家
    • 服务器运维之家
    服务器运维之家
    • 首页
    • 服务器运维
      • Linux技巧
      • Linux教程
      • 环境搭建
      • 运维编程
      • Windows系统
    • DNS/CDN相关
    • VPS优惠
      • 韩国VPS
      • 香港VPS
      • 美国VPS
    • 域名
    • 白嫖的知识
    • 工具干货
    • 网站主题
      • WordPress
      • Typecho
    • 开源代码
    服务器运维之家
    首页 » 服务器运维 » 环境搭建 » DevOps之二--Docker快速安装Jenkins
    环境搭建

    DevOps之二--Docker快速安装Jenkins

    2022年08月27日
    收录于话题
    #docker安装Jenkins 2

    一、安装 docker环境

    可以参考  安装docker文章

    二、安装 Jenkins

    Jenkins官方文档

    1.拉取 Jenkins 镜像

    docker pull jenkins/jenkins:latest-jdk8
    
    • 【采坑点】注意在docker镜像库搜索版本号时,应搜索 jenkins/jenkins,目前最新镜像维护的是这个名称。jenkins 这个镜像名称,最新的版本都是几年前维护的。
       
       
      DevOps之二--Docker快速安装Jenkins

       
      DevOps之二--Docker快速安装Jenkins

    2.启动 Jenkins 命令

    创建/var/jenkins_home 文件夹,设置权限 chmod 777 /var/jenkins_home

    docker run -itd -p 9080:8080 -p 9081:50000 -v /var/jenkins_home:/var/jenkins_home -v /etc/localtime:/etc/localtime -v /home/run/apache-maven-3.5.4:/usr/local/maven --name jenkinsTest  jenkins/jenkins:latest-jdk8
    

    详解:

    • -v /var/jenkins_home:/var/jenkins_home 这是后续构建项目的 workspace,构建出来的包也在这个目录下,同时为了配置 Jenkins方便。
    • -v /home/run/apache-maven-3.5.4:/usr/local/maven 因为容器中不带 Maven配置,所以把宿主机的 Maven 直接映射到容器内,方便后续使用。
    -a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;
    
    -d: 后台运行容器,并返回容器ID;
    
    -i: 以交互模式运行容器,通常与 -t 同时使用;
    
    -P: 随机端口映射,容器内部端口随机映射到主机的端口
    
    -p: 指定端口映射,格式为:主机(宿主)端口:容器端口
    
    -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
    
    --name="nginx-lb": 为容器指定一个名称;
    
    --dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;
    
    --dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致;
    
    -h "mars": 指定容器的hostname;
    
    -e username="ritchie": 设置环境变量;
    
    --env-file=[]: 从指定文件读入环境变量;
    
    --cpuset="0-2" or --cpuset="0,1,2": 绑定容器到指定CPU运行;
    
    -m :设置容器使用内存最大值;
    
    --net="bridge": 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型;
    
    --link=[]: 添加链接到另一个容器;
    
    --expose=[]: 开放一个端口或一组端口;
    
    --volume , -v: 绑定一个卷
    

    3. 查看容器是否启动成功

    • 命令验证
    docker ps 
    
    •  
      DevOps之二--Docker快速安装Jenkins
    • 浏览器输入 url:host (127.0.0.1:9080)看到以下页面证明 jenkins 启动成功


      DevOps之二--Docker快速安装Jenkins

    4.【踩坑】如果安装完成启动时卡在下面页面

    • 问题:国内访问国外安装插件的问题
    • 解决方案:使用国内插件库清华源
    •  
      DevOps之二--Docker快速安装Jenkins

    打开 jenkins的配置文件

    vi /var/jenkins_home/hudson.model.UpdateCenter.xml 
    

    修改配置为

    <?xml version='1.0' encoding='UTF-8'?>
    <sites>
      <site>
        <id>default</id>
        <url>https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json</url>
      </site>
    </sites>
    

    安装成功后首页如下:


    DevOps之二--Docker快速安装Jenkins

    5.获取管理员账号密码

    vi /var/jenkins_home/secrets/initialAdminPassword
    

    6.输入密码点击【继续】

    7.选择"安装推荐的插件"

    DevOps之二--Docker快速安装Jenkins

    DevOps之二--Docker快速安装Jenkins
     
     

    8.【采坑】安装插件比较慢

    问题:Jenkins安装插件比较慢或比较卡
    解决方案:设置 Jenkins 搜索引擎使用百度,不再使用google 搜索

    # 在/var/jenkins_home/updates路径下执行一下命令,替换 default.json 中的搜索引擎地址
    
    sed -i 's/http:\/\/updates.jenkins- ci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.json && sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' default.json
    
    • 配置完成后记得重启 jenkins,否则不生效
      jenkins 重启方式:浏览器访问127.0.0.1:9080/restart

    9.输入账号密码创建管理员账户

    10.实例配置,使用默认

     
    DevOps之二--Docker快速安装Jenkins

    11.Jenkins 就绪,开始使用

    DevOps之二--Docker快速安装Jenkins

    12.【踩坑】ruby-runtime安装失败,导致 hook 插件安装失败

    问题:docker安装Jenkins默认使用的 latest 版本镜像,该镜像是 JDK 11, ruby-runtime插件目前只能支持到 JDK 8,所以安装失败。
    解决方案一: 下载一个低版本jkd,将其拷贝到jenkins容器中, 然后偷梁换柱把低版本的jdk替换掉高版本的。
    解决方案二:重新下载 JDK 8的 jenkins 镜像,具体操作如上(之所以重新下载,是因为我们的项目稳定版本是使用的 JDK8,这样可以避免后续的很多问题)。

    # 在容器外下载就行
    wget https://builds.openlogic.com/downloadJDK/openlogic-openjdk/8u262-b10/openlogic-openjdk-8u262-b10-linux-x64.tar.gz
    # 将下载的jdk拷贝到容器内
    docker cp openlogic-openjdk-8u262-b10-linux-x64.tar.gz jenkins:/usr/local
    # 以root用户进入容器, -u 指定root用户
    docker exec -it -u root jenkins /bin/bash
    # 解压 JDK 文件
    tar -xvf openlogic-openjdk-8u262-b10-linux-x64.tar.gz
    # 改个名
    mv openlogic-openjdk-8u262-b10-linux-64/ jdk8
    # 找找java命令在哪儿 在 /opt/java/openjdk/bin/java
    whereis java
    # 先备份一下原java命令
    mv /opt/java/openjdk/bin/java /opt/java/openjdk/bin/java.bak
    # 偷梁换柱
    ln -s /usr/local/jdk8/bin/java /opt/java/openjdk/bin/java
    
    # 测试一下
    java -version
    

    换完低版本,回去继续将ruby-runtime插件,装完插件再把java版本改回来

    rm -f /opt/java/openjdk/bin/java
    mv /opt/java/openjdk/bin/java.bak /opt/java/openjdk/bin/java
    

    -------------------------------------------END Jenkins 安装完成------------------------------------

     
     
    上一篇 DevOps之一--自动化CI、CD基础概念
    下一篇 gitlab安装、备份、恢复、升级、内存消耗问题

    相关信息

    Docker----对已经存在的docker如何修改时区

    2022年08月28日

    已经在运行中的docker怎么让他always开机启动

    2022年08月28日

    怎么把文件放到docker容器里

    2022年08月27日

    gitlab安装、备份、恢复、升级、内存消耗问题

    2022年08月27日

    热门推荐信息

    gitlab安装、备份、恢复、升级、内存消耗问题

    2022年08月27日

    gitlab安装、备份、恢复、升级、内存消耗问题

    centos7下安装指定版本gitlab方法(联网+本地两种方法)

    2022年08月11日

    在centos7下安装指定版本的gitlab

    使用Mailu.io搭建域名邮箱

    2022年08月14日

    使用Mailu docker搭建域名邮箱

    Docker----对已经存在的docker如何修改时区

    2022年08月28日

    对已经存在的docker如何修改时区

    宝塔面板的安全防护措施

    2022年08月10日

    最新内容

    Docker----对已经存在的docker如何修改时区

    2022年08月28日

    已经在运行中的docker怎么让他always开机启动

    2022年08月28日

    怎么把文件放到docker容器里

    2022年08月27日

    gitlab安装、备份、恢复、升级、内存消耗问题

    2022年08月27日

    DevOps之一--自动化CI、CD基础概念

    2022年08月27日
    文章导航
    关于本站
    服务器运维之家

    服务器运维,VPS运维,VPS选择,云主机选择,Linux命令

    © 2025 服务器运维之家.
    • 联系我们
    • 返回首页

    按 回车 搜索. 按 Esc 取消.