• 基于Docker+Jenkins+Gitl搭建持续集成环境(部分关键笔记)


    Jenkins

    # https://hub.docker.com/r/jenkins/jenkins
    version: '3'
    services:
      jenkins:
        image: registry.cn-hangzhou.aliyuncs.com/zhengqing/jenkins:2.346.1                  # 原镜像`jenkins/jenkins:2.346.1`
        container_name: jenkins                     # 容器名为'jenkins'
        restart: unless-stopped                             # 指定容器退出后的重启策略为始终重启,但是不考虑在Docker守护进程启动时就已经停止了的容器
        volumes:
          # 数据卷挂载路径设置,将本机目录映射到容器目录 (下面映射可在容器中执行宿主机docker命令)
          - "/usr/bin/docker:/usr/bin/docker"
          - "/var/run/docker.sock:/var/run/docker.sock"
          - "/usr/lib64/libltdl.so.7:/usr/lib/x86_64-linux-gnu/libltdl.so.7"
    #      - "/usr/local/bin/docker-compose:/usr/local/bin/docker-compose"  # 无效
          - "./jenkins/jenkins_home:/var/jenkins_home"
          # ThinBackup插件备份jenkins配置存储目录
          - "./jenkins/jenkins_config:/var/jenkins_config"
          # 解决jenkins安装插件报错: An error occurred during installation: No such plugin: cloudbees-folder
          # 下载地址  http://ftp.icm.edu.pl/packages/jenkins/plugins/cloudbees-folder/
          - "./jenkins/jenkins_home/war/META-INF/detached-plugins/cloudbees-folder.hpi:/var/jenkins_home/war/META-INF/detached-plugins/cloudbees-folder.hpi"
        environment:                                # 设置环境变量,相当于docker run命令中的-e
          TZ: Asia/Shanghai
          LANG: en_US.UTF-8
          JAVA_OPTS: '-Xmx2048M -Xms2048M -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:MaxNewSize=128m -Djava.util.logging.config.file=/var/jenkins_home/log.properties -Duser.timezone=Asia/Shanghai'
        user: root                                  # 使用root权限运行容器【docker中通过`-u root`命令】
        ports:                                      # 映射端口
          - "10000:8080"
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    # 当前目录下所有文件赋予权限(读、写、执行)
    chmod -R 777 ./jenkins
    # 运行
    docker-compose -f docker-compose-jenkins.yml -p jenkins up -d
    
    • 1
    • 2
    • 3
    • 4

    访问地址:ip地址:10000

    查看密码
    # 普通权限进入到docker容器
    docker exec -it jenkins /bin/bash
    # 使用root权限进入到docker容器
    docker exec -it -u root jenkins /bin/bash
    # 查看密码
    cat /var/jenkins_home/secrets/initialAdminPassword
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    问题

    jenkins升级问题
    # docker下jenkins升级只要需要替换容器中的jenkins.war文件并重启docker容器
    # 1.进入docker容器,其中-u root是使用root权限登录
    docker exec -u root -it jenkins /bin/bash 
    # 2.使用wget命令下载最新版本的jenkins.war文件
    # 3.使用whereis jenkins命令查看jenkins的安装路径       `/usr/share/jenkins/jenkins.war`
    # 4.使用cp命令将新的war包覆盖旧文件即可
    # 5.浏览器访问ip:8080/restart 重启即可升级成功
    # 备注:在进行容器部署时可以将容器的【/user/share/jenkins】目录挂载在宿主机上,以后升级只需替换jenkins.war文件即可。此种方式存在一个问题,在部署后由于宿主机的挂载文件夹为空,所以在部署后无法正常启动容器,放入jenkins.war与ref文件即可正常启动。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    jenkins时区设置问题
    # 1.进入系统管理->脚本命令行,执行下面命令设置为上海时间(该方式重启后失效)
    System.setProperty('org.apache.commons.jelly.tags.fmt.timeZone', 'Asia/Shanghai') 
    # 2.在部署容器时添加参数,-e JAVA_OPTS=-Duser.timezone=Asia/Shanghai(一直有效)
    
    • 1
    • 2
    • 3
    配置插件更新代理
    # 输入网址   http://localhost:8080/pluginManager/advanced 
    # 进入该页面最底下,找到【Update Site】,
    # 把其中的URL改成清华大学的Jenkins插件镜像地址:
    # http://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json 
    
    • 1
    • 2
    • 3
    • 4
    安装WebHooks并启用
    # 在Jenkins插件管理搜索安装插件Generic Webhook Trigger
    # 构建触发器启用钩子后地址: http://139.9.205.69:10000//generic-webhook-trigger/invoke?token=xxxx
    # 为了安全可开启Generic Webhook Trigger Whitelist
    
    • 1
    • 2
    • 3
    配置Jenkins参数
    # 打开updates文件夹中的default.json
    # 把connectionCheckUrl中的http://www.google.com修改为http://www.baidu.com
    # 把url中的http://updates.jenkins.io/download替换为http://mirrors.tuna.tsinghua.edu.cn/jenkins
    
    • 1
    • 2
    • 3

    解决jenkins安装插件报错: An error occurred during installation: No such plugin: cloudbees-folder

    到国内清华大学开源软件镜像站的插件中心,下载这个插件
    
    • 1

    Index of /jenkins/plugins/skip-certificate-check/latest/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror

  • 相关阅读:
    visual studio 中添加qt类报错问题
    Java基础学习——动态绑定机制
    申请出国签证都有哪些?
    Python 工匠 第三章 容器类型
    排序算法-基数排序法(RadixSort)
    QFusion数据库管理平台数据库集群创建及管理
    神经网络控制器设计原理,神经网络控制系统设计
    大数据应用概览(林子雨慕课课程)
    2024年最新版本Stable diffusion 4.7+ComfyUI升级版终于来了!(一键安装包,直接收藏)
    JVM架构和内存管理优化
  • 原文地址:https://blog.csdn.net/qq_35385687/article/details/132626735