docker部署jenkins
背景
因为另一台服务器今年到期,不打算再续费了(有些承受不住)。之前 jenkins 是直接安装在这台服务器上的,步骤繁琐且不方便迁移,因而这次想通过 docker 来部署 jenkins ;在本地实践后发现简单易上手,因而记录一下,后续就可以实现自己项目的发布。
docker 安装 jenkins
通过 docker search 命令查找 docker 官方 jenkins 镜像。一般使用 jenkins/jenkins 这个,第一个 jenkins 镜像启动会有一些警告提示,因而没有采用。
拉取完后就可以直接运行镜像创建一个 jenkins 容器了。(eg:记得先打开服务器防火墙的端口)
1 | docker run -d --restart always -ti -p 主机端口:8080 jenkins/jenkins |
启动后可以看到默认的登陆密码,如果后续忘记了,需要通过进入 jenkins 的容器内查看
1 | docker exec -it 容器id /bin/bash |
选择推荐插件安装即可
安装完成界面,可以看到中文插件翻译不全的问题。
要解决这个问题,先检查是否安装了两个插件 Locale 和 Localization: Chinese (Simplified)
都安装好后,修改 jenkins 的配置
然后重启 jenkins,如果不生效,需要按照以下步骤重试
先修改 Locale 为 zh_US,然后重启
再修改 Locale 为 zh_CN,然后重启
新版本的 jenkins 做不到完全中文,应该是跟 jenkins 新版本对中文插件支持的兼容问题。之前机器上的旧版本 jenkins 对中文包支持较好,如果不能忍受这种问题,推荐降级 jenkins 的版本。
安装插件
安装插件 Rebuilder,SafeRestart,NodeJs,Publish over SSH,Generic Webhook Trigger ,然后重启。
设置全局 node
在系统配置中 设置全局 ssh 连接服务器用户
设置完后测试是否连接成功,返回 success 即为成功
创建一个 jenkins 任务并发布
选择新建一个任务并创建
配置完成后就可以进行打包了
任务执行结束后,会把配置的打包目录传递到想要传递给服务器的目录中
在 git/gitee 中添加 webhook
jenkins 配置好后,可以给 git/gitee 等代码托管平台添加 webhook,在提交代码后,来自动触发 jenkins 执行打包/发布任务。下面以 gitee 为例,在一个项目的管理中,通过 webhook 配置。
我这里选择的 push 时候,只要提交代码,就会去触发一次 jenkins 对应的任务。
nginx 代理 jenkins
现在 jenkins 仍通过 ip+端口的返回访问,有些丑陋,用 nginx 反向代理一下 jenkins 服务。
1 | server { |
最后通过 nginx -s reload 重新加载一下配置,就可以通过域名访问了。