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条评论