docker笔记3--配置jenkins

发布时间:2023-01-17 21:00

docker笔记3--配置jenkins

全球领先的开源自动化服务器, Jenkins 提供了数以百计的插件来支持构建、部署和自动化任何项目。Jenkins是基于Java开发的一种持续集成工具,用于监控秩序重复的工作,其工作原理包括: 1)、持续的软件版本发布/测试项目;2)、监控外部调用执行的工作。

1、安装方法

1)下载jenkins的docker镜像
 docker pull jenkins

2)新建本地文件 如 jenkins_data用来保存数据

3)启动jenkins,可以通过官方文档设置需要的启动方式,笔者使用的启动命令如下(建议写到shell脚本中):

docker run \
--name myjenkins \
-p 8081:8080 -p 50000:50000 \
-v $PWD/jenkins_data:/var/jenkins_home \
-u 0 \
-d jenkins

启动后,jenkins容器/var/jenkins_home 目录文件都将映射到$PWD/jenkins_data目录中,启动后会生成一个admin用户的密码,密码位置在 jenkins_data/secrets/initialAdminPassword中;

dockerhub安装文档:https://hub.docker.com/_/jenkins/

4)注意:使用dockerhub中的启动命令,若将文件映射到本地,必须添加-u 0命令,否则会出现如下错误;

Can not write to /var/jenkins_home/copy_reference_file.log. Wrong volume permissions?
touch: cannot touch ‘/var/jenkins_home/copy_reference_file.log’: Permission denied
这里传入-u 0代表的是root帐号Id,这可以避免读写权限问题

2、使用方法

1)输入http://ip:8081进入主界面,如下图,输入jenkins_data/secrets/initialAdminPassword中的密码即可

docker笔记3--配置jenkins_第1张图片

2)选择相应插件,不熟悉的话使用默认的即可,后续根据需要自动,如下图

docker笔记3--配置jenkins_第2张图片

3)输入初始用户信息即可,成功后如图所示:

docker笔记3--配置jenkins_第3张图片

4)可以使用admin登录,也可以使用自己注册的用户名和密码登录,admin的密码为jenkins_data/secrets/initialAdminPassword中的密码,登录后主界面如下所示:

docker笔记3--配置jenkins_第4张图片

3、功能说明

1)增删用户

Jenkins默认没有开放注册功能,初始用户只有两个,一个为admin用户,另外一个为初始设置时候的用户,因此在这种情况下可以用已有的用户添加新用户,添加方式为:

系统管理->管理用户->新建用户/删除用户,如下图所示:

docker笔记3--配置jenkins_第5张图片

4、常见错误

1)docker pull jenkins 报错

报错:
$ docker pull jenkins
Using default tag: latest
Error response from daemon: manifest for jenkins:latest not found: manifest unknown: manifest unknown
原因:
dockerhub 中jenkins没有latest版本,因此pull的时候需要指定具体版本
例如 docker pull jenkins:2.60.3

2) 无法获取插件
笔者安装2.244 版本的Jenkins的时候发现很多插件无法安装,后来发现是版本不兼容导致的,因此将版本升级到最新版本2.299,升级后恢复正常。

3)使用pipeline 案例agent docker 异常
使用官方阿里docker agent执行的时候提示找不到docker,原因为默认jenkins镜像中没有安装docker,因此才会找不到,此时只需将agent更改为any即可顺利执行。
若确实需要使用docker,那么可以在docker中安装docker,或者将本机的docker相关配置挂在到docker中,但是这种方法不安全,一般不推荐。

pipeline {
    agent { docker 'python:3.5.1' }
    stages {
        stage('build') {
            steps {
                sh 'python --version'
            }
        }
    }
}
可以调整为:
pipeline {
    agent any
    stages {
        stage('build') {
            steps {
                sh 'python --version'
            }
        }
    }
}

将本机docker直接挂载到jenkins容器中:
docker run -d --name=jenkins -u 0 -p 8080:8080 -p 50000:50000 -v $(which docker):/usr/bin/docker -v /var/run/docker.sock:/var/run/docker.sock -v /home/xg/soft/jenkins_home:/var/jenkins_home jenkins:2.60.3
参考文档:
[docker jenins](https://forums.docker.com/t/docker-not-found-in-jenkins-pipeline/31683/14)

4)最新版本配置 plugin Update Site 权限问题
由于一般的update-center.json 中的插件访问都有权限,因此需要更新crt文件到var/jenkins_home/war 的相应目录。具体crt一般可以到对应的githb repo里面找到,详情见参考文档。
以下为华为的镜像地址和crt:

https://cdn.jsdelivr.net/gh/lework/jenkins-update-center@master/updates/huawei/update-center.json

https://cdn.jsdelivr.net/gh/lework/jenkins-update-center@master/rootCA/update-center.crt -O war/WEB-INF/update-center-rootCAs/update-center.crt

5、说明

截图系统版本:腾讯云 Ubuntu 16.04 Server (64-bit)
参考文档:
[Jenkins 插件中心国内镜像源发布](https://community.jenkins-zh.cn/t/jenkins/26/17)
[使用国内镜像加速你的jenkins](https://lework.github.io/2020/03/05/jenkins-update-center/)
[Jenkins中文官文--开始使用 Jenkins](https://www.jenkins.io/zh/doc/pipeline/tour/getting-started/)

ItVuer - 免责声明 - 关于我们 - 联系我们

本网站信息来源于互联网,如有侵权请联系:561261067@qq.com

桂ICP备16001015号