Jenkins + gitee webhook

2018-06-08 • OSNo Comments

前提: 当前系统是在阿里云上的Ubnutu16.04,使用laradock搭建起的php运行环境。
目标: git push时自动部署

1.建立jenkins服务容器,因为laradock已经集成了jenkins了,可以直接up,不过要先改一下Dockerfile。

2.修改DOCKER_GID。

# Add jenkins to the correct group
# see http://stackoverflow.com/questions/42164653/docker-in-docker-permissions-error
# use "getent group docker | awk -F: '{printf "%d\n", $3}'" command on host to find correct value for gid or simply use 'id'
ARG DOCKER_GID=998

因为jenkins会用到宿主机上的docker服务,所以先把jenkins用户加入到docker用户组。这个操作在后续会执行,这里只要把DOCKER_GID改成宿主机的docker用户组的id,至于怎么找到这个id,可以执行getent group docker | awk -F: '{printf "%dn", $3}',上面的注释已经有写了耶,贴心如斯。

3.修改jenkins_home权限。

jenkins_home是jenkins的工作目录,里面有用户创建的执行的脚本,任务日志,队列配置等等。从Dockerfile上看到,这个目录是作为volume挂载进来的,因为它在宿主机的权限属于root:root,而容器里的用户是jenkins,所以jenkins不够权限使用这个目录,把这个目录改成jenkins吧:在宿主机 chown -R 1000:1000 /var/laradock/jenkins/jenkins_home

4.up起来,docker-compose up -d jenkins,记得要开放端口,ufw allow 8090,还有aliyun的安全策略组添加TCP-8090

5.到此已经成功安装jenkins。

6.登录到jenkins,localhost:8090,已经配了域名的话可以直接外网访问。第一次访问会要求输入密钥以及设置管理员账户。

7.安装gitee的插件,安装与使用参考https://gitee.com/oschina/jenkins-webhook-plugin,里面有详细的图文教程

8.然后可以开始我们的第一个任务

a.创建自由风格的软件项目
b.源码管理 选中git,设置账户密码
c.设置gitee的webhook插件信息,当然也要到gitee上做相应配置。
d.构建中选择execute shell,由于我已经把命令写成sh文件了,直接运行文件就好了,docker exec -d laradock_workspace_1 /usr/local/bin/hook309
e.最后可以在任务列表中查看已经执行的日志记录

[miao] $ /bin/sh -xe /tmp/jenkins3668212662873037873.sh
+ docker exec -d laradock_workspace_1 /usr/local/bin/hook309
Finished: SUCCESS

粤公网安备 44011102000950号