这篇文章主要是记录自己学习docker部署jenkins、以及踩的一些坑,分为三个部分
一、docker部署jenkins
二、jenkins自动化部署前端项目
三、以及遇到的一些坑
docker部署gitlab可以参考这篇文章:docker部署gitlab和gitlab-ce版本14.0.5-ce.0 root账号密码设置问题
一、docker部署jenkins
sudo docker run -d \
--name jenkins_test10 \
-v jenkins_home:/var/jenkins_home \
-v /var/run/docker.sock:/var/run/docker.sock \
-v $(which docker):/usr/bin/docker \
--privileged=true \
-p 8090:8080 \
-p 50010:50000 \
jenkins/jenkins:lts
命令执行完后
1、通过docker logs ‘jenkins容器id’ 获取登录密码;
2、在浏览器中输入ip地址进入jenkins的初始页面
3、选择安装推荐插件,安装插件
4、设置新的用户名和密码,也可以不设置
然后jenkins就已经部署完毕了
二、jenkins自动化部署前端项目
jenkins自动化部署项目需要几个步骤
1、配置jenkins的gitlab权限
2、配置jenkins的私钥与gitlab的部署公钥
3、配置jenkins的构建项目
1、配置jenkins的gitlab权限
a、在gitlab创建一个应用,填写应用名称和重定向地址,地址的规则是:jenkinsde地址+/securityRealm/finishLogin
再勾选api这个选项,提交,然后就会创建出一个应用
b、进入jenkins安装 Gitlab Authentication 插件重启之后,进入:系统管理 => 全局安全配置
配置完后点击底部的保存按钮保存配置信息
2、配置jenkins的私钥与gitlab的部署密钥
a、配置gitlab部署密钥
然后进入项目,选择设置中的仓库,展开 Deploy keys 选项,将部署密钥启用
b、配置jenkins的全局凭据
类型可以选择使用gitlab的账号密码方式,也可以使用ssh key的私钥
3、配置jenkins的构建项目
a、配置jenkins的源码
b、安装build with params 插件,然后选择参数化构建过程,选择点击添加参数 => 选择字符参数
c、 在构建中选择执行shell脚本,构建脚本如下图所示
配置完后,点击底部的保存按钮进行保存
然后点击 build with parameters选项 ,填写构建的参数后,点击开始构建
三、以及遇到的一些坑
在构建的时候可能会遇到一些问题,比如
1、docker: command not found
原因:jenkins获取不到docker的环境信息
解决方法: 在执行部署jenkins的命令中加入这条命令:-v /var/run/docker.sock:/var/run/docker.sock // 这是将宿主机的docker环境变量映射
2、dial unix /var/run/docker.sock: connect: permission denied
原因:jenkins的权限问题
解决方法:a、将当前用户添加到docker组去:
sudo gpasswd -a $USER docker
b、在docker部署jenkins时,加上 sudo ,提升权限
c、 临时设置,可以快速解决问题,但是docker重启后需要重新设置
cd /var/run
sudo chmod 666 docker.sock
3、Build step 'Execute shell' marked build as failure
解决方法:在shell脚本第一行添加 “#!/bin/bash” 脚本解释器
#!/bin/bash
4、docker的卸载,然后重新部署jenkins后,原来的数据还存在
原因:虽然jenkins是已经被卸载来,但是它的数据卷并没有被删除,所以原来的数据还是会存在
解决方法:
a、首先,关停并删除 jenkins容器
docker stop 容器id
docker rm 容器id
b、查看数据卷
docker volume ls
c、删除数据卷
docker volume rm jenkins_home