0


基于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"
# 当前目录下所有文件赋予权限(读、写、执行)chmod-R777 ./jenkins
# 运行docker-compose-f docker-compose-jenkins.yml -p jenkins up -d

访问地址:ip地址:10000

查看密码
# 普通权限进入到docker容器dockerexec-it jenkins /bin/bash
# 使用root权限进入到docker容器dockerexec-it-u root jenkins /bin/bash
# 查看密码cat /var/jenkins_home/secrets/initialAdminPassword

问题

jenkins升级问题
# docker下jenkins升级只要需要替换容器中的jenkins.war文件并重启docker容器# 1.进入docker容器,其中-u root是使用root权限登录dockerexec-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文件即可正常启动。
jenkins时区设置问题
# 1.进入系统管理->脚本命令行,执行下面命令设置为上海时间(该方式重启后失效)
System.setProperty('org.apache.commons.jelly.tags.fmt.timeZone', 'Asia/Shanghai')# 2.在部署容器时添加参数,-e JAVA_OPTS=-Duser.timezone=Asia/Shanghai(一直有效)
配置插件更新代理
# 输入网址   http://localhost:8080/pluginManager/advanced # 进入该页面最底下,找到【Update Site】,# 把其中的URL改成清华大学的Jenkins插件镜像地址:# http://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json 
安装WebHooks并启用
# 在Jenkins插件管理搜索安装插件Generic Webhook Trigger# 构建触发器启用钩子后地址: http://139.9.205.69:10000//generic-webhook-trigger/invoke?token=xxxx# 为了安全可开启Generic Webhook Trigger Whitelist
配置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

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

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

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

标签: docker jenkins ci/cd

本文转载自: https://blog.csdn.net/qq_35385687/article/details/132626735
版权归原作者 阳宗德 所有, 如有侵权,请联系我们删除。

“基于Docker+Jenkins+Gitl搭建持续集成环境(部分关键笔记)”的评论:

还没有评论