写这篇文章的灵感来源于最近公司的 jenkins 部署总是失败,各类缘由。在项目很是赶的状况下,我天天还要抽半天时间去排查 jenkins 上的问题。因此决定在咱们前端服务器上搭建个 jenkins 给测试部署。并部署到前端服务器上。文章是边操做边写出来的,踩遍了坑。不知道你们会不会也遇到这些问题。反正我都把解决步骤写在里面了。html
本文主要内容是介绍 jenkins 的搭建与使用。至因而安装在服务器上仍是本文经过 docker 安装 jenkins 不是很重要,默认读者会使用 docker。若是不是很了解docker
可看个人docker 从入门到实战博客,本文章同步发表于个人博客前端
docker pull docker.io/jenkins/jenkins:latest
vue
安装成功后使用docker images
查看镜像git
github docker images REPOSITORY TAG IMAGE ID CREATED SIZE jenkins/jenkins latest 59f8784e08ee 2 days ago 619MB
在启动 Jenkins 前,须要先建立一个 Jenkins 的配置目录,而且挂载到 docker 里的 Jenkins 目录下github
新建一个文件夹如个人/Users/zhouatie/Desktop/github/front-end/practise-jenkins
web
并给该文件夹受权sudo chown -R 1000 /Users/zhouatie/Desktop/github/front-end/practise-jenkins
docker
这里有个很神奇的点就是网上都说要受权,因此我受权了,可是仍是提示
Can not write to /var/jenkins_home/copy_reference_file.log. Wrong volume permissions
。后来我新建了个文件夹不作受权处理就能够了。可查阅
stackoverflow 这里面一位朋友就是遇到相同的问题 受权了也没用。
执行如下命令构建容器shell
docker run -itd -p 8080:8080 -p 50000:50000 --name jenkins -v /Users/zhouatie/Desktop/github/front-end/practise-jenkins:/var/jenkins_home docker.io/jenkins/jenkins:latest
执行docker ps
查看后台启动的容器状况json
➜ front-end git:(master) ✗ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 3385ad0e42fe jenkins/jenkins:latest "/sbin/tini -- /usr/…" 5 minutes ago Up 5 minutes 0.0.0.0:8080->8080/tcp, 0.0.0.0:50000->50000/tcp jenkins
能够看到 jenkins 容器已经启动成功了。这个时候访问下页面吧。浏览器输入 localhost:8080
浏览器
能够看到以下界面
这个时候咱们就能够到刚才管理数据卷的文件夹里找了(我本地是/Users/zhouatie/Desktop/github/front-end/practise-jenkins/secrets/initialAdminPassword
),cat
下这个文件能够看到输出28023d3751214bd6aadc0dd83c168325
,把这个密码复制到管理员密码输入框中并点击继续。
loading 转了半天,有种不详的预感。结果不出意外显示 jenkins 离线。因此我又开始上网搜新版本 jenkins 安装时显示离线问题
解决步骤
http://localhost:8080/pluginManager/advanced
划到最下面能够看到
http://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/current/update-center.json
这个代理服务器再刷新下http://localhost:8080
页面以下
点击安装推荐的插件
结果不出意外以下图
而后我又开始google
了。找到了这个安装 jenkins 时出现 No such plugin: cloudbees-folder 的解决办法
结果按照前几个步骤失败,做者建议重启,好吧,重启就重启,执行下 docker restart jenkins
终于又成功进入下载页了。
安装真的超级慢,心急如焚,不知道是否是 docker 的缘由。由于文章是直接边操做边写的。在想要不要直接跨过这个安装界面,直接打开本身跑在前端服务器上的 jenkins 了开始介绍了
还没等他提示彻底失败,这个时候我就又开始google
了。实在没辙了,这的太难了。因此我重启了个jenkins
容器后,选择自选插件。而后什么也不选,进了页面后,能够在以下截图地方下载,我是将上面推荐的所有勾选后进行下载,结果还很快。
credentials
须要选择有该仓库权限的帐号,能够手动试下git
上的webhook
,就能够触发jenkins
部署。具体可查阅google
shell
脚本,很是好理解。