一、背景
今日我的网站要上线了。技术栈是django+vue。但需要经常更新代码,因为没有全方位的测试,因为前后端都是我一个人做的,所以还存在很多bug。于是如何持续集成的任务迫在眉睫,翻阅了很多devops书籍和度娘文章。决定用jenkins+gitee的模式。我的服务器环境如下:
二、服务器环境
1.操作系统:ubuntu 20.0 ,拥有公网ip
2.部署技术:docker部署vue和docker部署django
二、安装插件失败和踩的坑
参考了几篇网络文章,大同小异。其中以下文章比较齐全
安装过程比较顺利,在安装插件环节却被折磨了两天,都快放弃jenkins了。最后在阅读了官网的一些docker部署要点,才得到一些启发。
网络上用docker大部分是这么写的。
$ mkdir -p /data/jenkins
$ docker run --name jenkins -u root --rm -d -p 8080:8080 -p 50000:50000 -v /data/jenkins:/var/jenkins_home -v /var/run/docker.sock:/var/run/docker.sock jenkinsci/jenkins
解析:第一行是在宿主服务器机子上新建一个目录,用于挂载docker的jenkins数据
第二行开始下载并运行docker镜像,并制定镜像名为jenkinsci/jenkins,以及映射宿主的一些端口和挂载,这样下载到镜像是lastest版本。问题就在这里,每次下载到的看似比较新的版本,比如2.391.1,然而每次在available中搜索插件,比如git,就会有warnning提示:该版本适合2.xxx以上,点击安装后,虽然提示成功或者直接失败。但是重启后插件都没有生效,也尝试过修改下载源,比如
选择【高级】选项卡
替换最下方【升级站点】中的URL
将
http://updates.jenkins-ci.org/update-center.json
替换为
http://mirror.esuni.jp/jenkins/updates/update-center.json
以及直接去官网下载插件。结果都无效。
下载Jenkins的插件的地址:https://plugins.jenkins.io/
三、解决办法:安装最新的版本
最后试了下下载最新的版本,查看官网找到最新的版本,并且在docker去pull的时候坑,制定该最新版本号或者相应的要求。比如jenkins/jenkins:lts-jdk17。完整安装docker代码如下:
mkdir -p /workspace/jenkins_home
docker pull jenkins/jenkins:lts
docker run --privileged --name jenkins-9999 -d -p 9999:8080 -p 8888:8888 -p 50000:50000 -v /workspace/jenkins_home:/var/jenkins_home -v /var/run/docker.sock:/var/run/docker.sock jenkins/jenkins:lts-jdk17
以上代码我是写在shell脚本中的,比如用vim install_jenkins.sh,然后把代码粘贴进去,最后退出vim编辑(:wq),运行该shell脚本。./install_jenkins.sh
这时候登录进去,发现该版本是最新的,因为最新的依赖jdk17的环境。同时发现之前安装的插件都生效了。哈哈哈