Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。
Jenkins功能包括:
1、持续的软件版本发布/测试项目。
2、监控外部调用执行的工作。
一、通过docker安装Jenkins:
1、查看jenkins版本命令
docker search jenkins
2、拉取镜像命令(不标注表示最新的)
docker pull jenkins
3、创建挂载目录(docker映射到外部的路径)
mkdir /home/jenkins
4、修改权限(1000:1000 是UID和GID)
chown -R 1000:1000 /home/jenkins/
注意:此目录需要设置权限,否则启动容器报错权限错误
5、运用镜像启动容器命令
docker run -d -p 8000:8080 -p 60000:60000 -v /home/jenkins:/var/jenkins_home --name jenkins --privileged=true -u root jenkins
参数说明:
-p : 映射端口,宿主机端口:容器端口 -v : 挂载,宿主机目录:容器目录 --name : 自定义容器名 -u : 权限用户名 --privileged : 使用该参数,container内的root拥有真正的root权限,否则,container(容器)内的root只是外部的一个普通用户权限,privileged启动的容器可以看到很多host上的设备,并且可以执行mount,甚至允许你在docker容器内启动docker容器。 -p 60000:60000 :如果您在其他机器上设置了一个或多个基于JNLP的Jenkins代理程序,而这些代理程序又与 jenkinsci/blueocean 容器交互(充当“主”Jenkins服务器,或者简称为“Jenkins主”), 则这是必需的。默认情况下,基于JNLP的Jenkins代理通过TCP端口50000与Jenkins主站进行通信。
6、修改default.json、hudson.model.UpdateCenter.xml配置文件
启动容器后,进入刚才设置的挂载目录 /home/jenkins 内,可以看到已经有映射的配置文件了。
默认路径 http://updates.jenkins-ci.org/update-center.json 改成路径 http://mirror.xmission.com/jenkins/updates/update-center.json
7、完成后修改 /updates/default.json 配置文件
默认路径 "connectionCheckUrl":"http://www.google.com/" 改为路径 "connectionCheckUrl":"http://www.baidu.com/"
8、重启jenkins容器
docker restart jenkins
9、访问
http://IP或域名:8000/
10、获得登录密码
可直接找: /home/jenkins/secrets/initialAdminPassword 或者进入容器内找: /var/jenkins_home/secrets/initialAdminPassword 需要进入jenkins容器内,查找密码: docker exec -it jenkins /bin/bash # jenkins 为容器名或容器id cat /var/jenkins_home/secrets/initialAdminPassword #查看密码 获得密码后登录即可
11、如果使用docker容器部署的Jenkins,要在Jenkins中执行docker build 等命令,有三种方式:
第一:安装Docker-build-step插件。但是如果是Jenkins pipeline脚本就不行了。
第二:调用docker RESTful API。可以参考docker官网https://docs.docker.com/engine/api/v1.40/#operation/ImageList
第三:把宿主的docker命令共享给容器内部使用。
docker run -it -d -p 8000:8080 -p 60000:60000 \ --name jenkins \ # 容器名 --privileged=true \ --restart=always \ -v /home/jenkins:/var/jenkins_home \ -u root \ -v /usr/bin/docker:/usr/bin/docker \ -v /var/run/docker.sock:/var/run/docker.sock \ -v /etc/sysconfig/docker:/etc/sysconfig/docker \ -v /usr/bin/docker-current:/usr/bin/docker-current \ -v /usr/lib64/libltdl.so.7:/usr/lib/x86_64-linux-gnu/libltdl.so.7 \ jenkins # 镜像名
说明:
--restart=always #Docker重启后该容器也为随之重启 -u root #以root的身份去运行镜像(避免在容器中调用Docker命令没有权限) #最好使用docker用户去运行 -v /usr/bin/docker:/usr/bin/docker #将宿主机的docker命令挂载到容器中 #可以使用which docker命令查看具体位置 #或者把挂载的参数改为: -v $(which docker):/usr/bin/docker -v /var/run/docker.sock:/var/run/docker.sock #容器中的进程可以通过它与Docker守护进程进行通信 -v /usr/lib64/libltdl.so.7:/usr/lib/x86_64-linux-gnu/libltdl.so.7 #libltdl.so.7是Docker命令执行所依赖的函数库 #容器中library的默认目录是 /usr/lib/x86_64-linux-gnu/ #把宿主机的libltdl.so.7 函数库挂载到该目录即可 #可以通过whereis libltdl.so.7命令查看具体位置 #centos7位置/usr/lib64/libltdl.so.7 #ubuntu位置/usr/lib/x86_64-linux-gnu/libltdl.so.7
转载请注明:永盟博客 » 安装部署Jenkins