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保存在里面

123.png

      五、创建镜像仓库

      我是试验,只是暂时将镜像推到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就会完成任务

1.png

这时候我的telegram也会收到一条推送

12345.png

      这样我就实现了构建PHP镜像,推到docker官方仓库,然后通知到我的telegram。

0条评论

发表评论