超详细本地搭建 docker + jenkins 自动部署项目 | 您所在的位置:网站首页 › 佳能xius70有几个颜色 › 超详细本地搭建 docker + jenkins 自动部署项目 |
目的
本地搭建 docker + jenkins 部署系统, 通过 github 的 webhook 实现代码自动化部署. 准备工作 安装dockermac: docs.docker.com/docker-for-… windows: docs.docker.com/docker-for-… liunx: // 推荐脚本安装方式 curl -fsSL get.docker.com -o get-docker.sh sudo sh get-docker.sh --mirror Aliyun控制台输入 docker -v, 显示版本则安装成功 Docker version 20.10.5, build xxxxx 安装 jenkins控制台输入docker search jenkins,选择安装jenkinsci/blueocean镜像,比较稳定.
控制台输入docker run -d --name docker-jenkins -p 8008:8080 -p 50000:50000 jenkinsci/blueocean 启动容器,启动成功会返回该容器 id
下一步需要进入容器内拿到密码,以我刚刚启动的容器为例,控制台输入docker exec -it docker-jenkins bash进入容易内,然后输入cat /var/jenkins_home/secrets/initialAdminPassword 输入控制台返回的密码进入配置页面,这里选择安装推荐的插件,可能会有安装失败的插件,重试即可 插件安装完成后,输入信息创建用户
下面对 github 以及 jenkins 进行配置 在容器内生成 ssh 公钥进入docker-jenkins容器内,输入ssh-keygen -t rsa -C [email protected],连续回车生成公钥 右上角头像 -> settings -> 左侧SSH and GPG keys -> New SSH key
这一步需要注意,需要用刚刚生成的私钥创建一个 jenkins 凭证 注意: 私钥上下的开始以及的标记内容也要一起拷贝 首页 -> 左侧系统管理 -> Manage Credentials -> 添加凭据 注意: 类型选择 SSH Username with private key, 描述以及 Username 随意 创建任务首页 -> 新建任务 -> 输入任务名称 -> 构建一个自由风格的软件项目 -> 确定 正常情况可以看到这个页面
注意: 这一步输入远程仓库之后会测试连接,未选择凭证会报错误信息,选择凭证后,如果配置正确,短暂的时间之后错误信息会消失,代表远程仓库连接成功.若错误信息不消失,可能会构建项目失败,需检查配置是否正确.分支信息我这里指定的 master 尝试项目构建首页 -> 构建项目 -> 查看日志 如果配置正确,可以看到构建完成最终的状态为: Finished: SUCCESS
完成自动化部署,主要是通过 github-webhook.简单来说就是github-webhook通知 jenkins 要进行构建了. 引用维基百科介绍 在web开发过程中的webhook,是一种通过通常的callback,去增加或者改变web page或者web app行为的方法。这些callback可以由第三方用户和开发者维持当前,修改,管理,而这些使用者与网站或者应用的原始开发没有关联。webhook这个词是由Jeff Lindsay在2007年在计算机科学hook项目第一次提出的。 我的理解是类似于"发布订阅模式",github-webhook 发布更新, jenkins 监听,收到通知进行更新.无论发布或者监听,需要通过某种方式来确定彼此的身份,进行关联,因此需要对两端进行配置. 右上角头像 -> settings -> 左侧 Developer settings -> Personal access tokens -> Generate new token note 随意填,勾选以下两项,点击 generate token
配置仓库的 web-hook: 仓库首页 -> settings -> 左侧 webhooks -> add webhook 注意: 这里的 Payload URL只能使用公网域名,由于本次搭建的是本地 jenkins 环境,因此需要使用内网穿透工具,我用的是蜻蜓映射. Payload URL: 输入当前jenkins容器运行端口映射出去的公网域名 + /github-webhook/ Content type: 选择 application/json Secret: 填入刚刚生成的 token 其余默认 配置jenkins首先创建一个凭证: 首页 -> 系统管理 -> Manage Credentials -> 添加凭据 -> 选择 Secret text
项目代码需要打包之后才能被正确使用,接下来在 jenkins 端进行代码构建操作 首页 -> 系统管理 -> 插件管理 -> 可选插件 -> 选中 NodeJS 以及 Publish Over SSH -> 安装 -> 等待安装完成 NodeJS: 代码运行环境 Publish Over SSH: 打包完成后发送到服务器首先配置全局 NodeJS 插件:
首页 -> 系统管理 -> 全局工具配置 -> NodeJS -> 新增
配置完之后手动点击构建,查看日志查看构建状态,操作成功可以进到 docker-jenkins容器内部检查 dist.tar.gz 文件是否存在 首页 -> 系统管理 -> 系统配置 -> Publish over SSH -> SSH Servers
项目配置 -> 构建后操作 -> SSH Server -> Transfers Source files: 发送的文件(相对路径为当前项目路径) Remove prefix: 要去掉的前缀 Remote directory: 远端服务器目录(不存在会报错) Exec command: 发送成功之后要在服务器进行的脚本操作,如:解压,删掉多余的文件
最后尝试推送代码,验证自动化构建部署~
|
CopyRight 2018-2019 实验室设备网 版权所有 |