这篇文章主要是记录自己学习docker部署jenkins、以及踩的一些坑,分为三个部分

一、docker部署jenkins

二、jenkins自动化部署前端项目

三、以及遇到的一些坑

docker部署gitlab可以参考这篇文章:docker部署gitlabgitlab-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
Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐