docker init 进程工具 tini

docker镜像为了节省空间,通常是没有安装systemd或者sysvint这类初始化系统的进程

一旦容器的起始进程不稳定将会产生大量的僵尸进程,影响宿主系统的运行

安全的启动方式会使用 init系统

init 系统 有以下几个特点:

init系统 的第一个进程,负责产生其他所有用户进程

drone feishu notify plugin

  • 群/话题中,新建 群机器人
  • 点击,群管理
  • 新建一个 自定义机器人 类机器人, 自定义机器人指南
    • 机器人名称 改为 ns-drone:{url} ,其中 {url} 改为 drone 地址便于管理,ns-drone 为 notifications message drone 简写,当然也可以自定义不影响效果
    • 描述 改为通过 webhook 推送 https://{url} 构建通知
    • 确认后,会产生一个 webhook 地址,格式为 https://open.feishu.cn/open-apis/bot/v2/hook/{webhook}记录下来
    • 添加 自定义关键词: 比如 Drone CI Notification 作为通知 title
    • 勾选 仅群主和添加者可编辑、移除此机器人
    • 勾选 签名校验 可选 如果设置见文档 方式三:签名校验,后面会用到这个密钥

对目标工程或者群组设置 secret 配置官方文档

drone-runner 配置

  • env DRONE_WORKSPACE
    • pipeline/environment/reference/drone-workspace/ offical doc
      • with empty on mode type: docker
      • with path of runner temp folder on mode type: exec, and will remove after build

use https://docs.drone.io/pipeline/docker/syntax/conditions/

  • env file

Makefile 使用详解

在 Unix 下的软件工程,会不会编写 makefile,从一个侧面说明了开发者是否具备完成大型工程的能力

因为,makefile关系到了整个工程的编译规则

  • 一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中
  • makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译
  • 甚至于进行更复杂的功能操作,因为 makefile 就像一个树状 shell 脚本一样,不但可以执行依赖的任务,也可以执行操作系统的命令

makefile带来的好处就是—— 自动化编译 一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率