Drone构建PHP镜像并通知到telegram
Drone构建PHP镜像并通知到telegram
部署完Drone之后,捣鼓了挺久,由于官方文档实在太过于那个(无力吐槽),一直没有成功用上,昨晚突然有了灵感,赶紧小试一把,先起步,尝试构建一个PHP镜像,然后推送到镜像仓库,再捣鼓加上通知,最后竟让我搞通,特意记录下来跟大家分享。
一、创建仓库
还是沿用上一步的东西,我们在gitea创建一个仓库,在Drone管理面板激活。
二、创建Dockerfile
由于我们要构建一个PHP镜像,所以需要通过Dockerfile文件来进行构建,我们直接构建一个PHP镜像,然后暴露9000端口
# Version 1.0 FROM php:7.3-fpm # 维护者信息 MAINTAINER hzx790254812@gmail.com # 对外展示端口 EXPOSE 9000
三、创建通知机器人
我这里用到的是telegram的机器人来实现通知,关于如何创建telegram机器人,大家自行查资料解决,最终我们获得两个要素,机器人token以及在telegram的用户id。
四、创建Secrets
Drone有一个好处就是可以将一些涉及重要的信息,例如密码统统存在Secrets中,这里我们也不例外,需要将镜像仓库的账户跟密码,以及telegram机器人token以及自己账户的id保存在里面
五、创建镜像仓库
我是试验,只是暂时将镜像推到docker的官方仓库,实际在生产上,肯定是放在自己的私人镜像仓库,没暴露出去。
六、创建.drone.yml
在我们当前仓库根目录创建.drone.yml并开始编写我们的钩子触发的动作
kind: pipeline type: kubernetes name: project-go steps: #构建镜像 - name: build image: alpine commands: - echo '构建镜像' #推送镜像至镜像仓库 - name: publish image: plugins/docker settings: repo: 镜像仓库地址 use_cache: true tags: - latest username: from_secret: docker_username password: from_secret: docker_password #通知到telegram - name: notification image: appleboy/drone-telegram settings: token: from_secret: telegram_token to: from_secret: telegram_user_id message: > {{#success build.status}} {{repo.name}} 第{{build.number}} 次自动部署成功 耗时 {{since build.started}} 提交分支 {{commit.branch}} 详情 {{ build.link }} {{else}} {{repo.name}} 第{{build.number}} 次自动部署失败 耗时{{since build.started}} 提交分支 {{commit.branch}} 详情 {{ build.link }} {{/success}}
大家只要将镜像仓库地址替换成自己的就可以了
七、试验
我们git提交到master分支,稍等片刻Drone就会完成任务
这时候我的telegram也会收到一条推送
这样我就实现了构建PHP镜像,推到docker官方仓库,然后通知到我的telegram。
0条评论