Docker容器编程实践部署运维

用Docker简化Nodejs开发3——用webhook实现自动

2019-12-03  本文已影响0人  全栈顾问

利用GitHub的webhook和Jenkins实现提交代码后,生产环境(阿里云主机)自动拉取代码进行部署。

安装Jenkins

首先在云主机上完成Docker的安装,可参考官网文档

执行命令安装Jenkins

docker run -u root --rm --name jenkins-blueocean -d -p 8080:8080 -p 50000:50000 -v /data/jenkins_home:/var/jenkins_home -v /var/run/docker.sock:/var/run/docker.sock jenkinsci/blueocean

参考:https://jenkins.io/zh/doc/book/installing/

打开Jenkins

Docker容器运行后,访问主机地址http://host:8080,出现如下页面:

image.png

在主机上运行命令进入容器:

docker exec -it jenkins-blueocean bash

在容器内执行命令查看文件:

cat /var/jenkins_home/secrets/initialAdminPassword

将输出的字符串复制前面的页面中。

通过后出现下面的页面:

image.png

选择跳过插件安装就可以。

设置Jenkins

打开Jenkins,执行New Item

image.png

输入项目名称,选择Freestyle project注意:/var/jenkins_home目录下会创建workspace/项目名称目录,它将作为github上拉取代码的根目录。

image.png

选择Configure,设置与github相关的参数。

image.png

勾上GitHub项目,填写项目在GitHub上的URL。

image.png

在源代码管理部分,勾上Git,填写仓库的URL(.git结尾)。

image.png

如果项目比较大,需要拉取很长时间(超过10分钟),需要指定超时参数。

image.png

构建触发器中勾选GitHub hook trigger for GiTScm polling,如下图:

image.png

指定构建完成后执行的shell脚本。

image.png

设置github

进入到github上的项目页,选择Settings标签,选择Webhooks,如下图:

image.png

添加webhook,设置接收事件的地址和事件类型(只接收push事件)。

image.png

运行

设置好之后,每次向GitHub提交代码都会出触发Jenkins拉取代码。

Build History中可以查看任务执行的情况。

image.png

选择一条记录可以进入查看详情,Console Output中包括输入的内容。

image.png

总结

通过GitHub的webhook机制可以实现多个环境间实现联动,通过Jenkins可以实现构建过程的可视化,它们减少了运维人员大量的重复工作,既减少了工作量也避免发生认为错误。

上一篇下一篇

猜你喜欢

热点阅读