Kubernetes/CICD/Drone
offends 7a2f41e7d6
All checks were successful
continuous-integration/drone Build is passing
synchronization
2024-08-07 18:54:39 +08:00
..
Docs synchronization 2024-08-07 18:54:39 +08:00
File synchronization 2024-08-07 18:54:39 +08:00
YML synchronization 2024-08-07 18:54:39 +08:00
Dockerfile synchronization 2024-08-07 18:54:39 +08:00
README.md synchronization 2024-08-07 18:54:39 +08:00

本文作者:丁辉

DronePlugins构建Docker镜像

准备环境

  • 克隆仓库到本地

    git clone https://gitea.offends.cn/offends/Kubernetes.git && cd Kubernetes/CICD/Drone
    
  • 修改 Dockerfile 并上传至自己的仓库

  • 进入 Drone Web页面点击 SYNC 同步仓库

  • 点击 ACTIVATE REPOSITORY 激活存储库

  • 点击 Settings 配置 Secrets

    变量名 解释
    REGISTRY 镜像仓库地址 registry.cn-hangzhou.aliyuncs.com
    DOCKER_USERNAME 镜像仓库登录用户
    DOCKER_PASSWORD 镜像仓库登录密码
    REPO 镜像的仓库名称 registry.cn-hangzhou.aliyuncs.com/<命名空间>/<镜像名>

插件 plugins/docker 参数

官网文档

属性 类型 可选/必选 描述 默认值
registry 字符串 可选 身份验证到该注册表的注册表
username 字符串 可选 使用此用户名进行身份验证
password 字符串 可选 使用此密码进行身份验证 推荐使用密钥
repo 字符串 可选 图像的仓库名称
tags 数组 可选 图像的仓库标签
secret 字符串 可选 使用buildkit将秘密传递给dockerbuild。例如id=mysecretsrc=secret-file
dockerfile 字符串 可选 要使用的Dockerfile Dockerfile
dry_run 字符串 可选 如果不应在最后推送Docker镜像则为布尔值
purge 布尔值 可选 如果应在最后清理Docker镜像则为布尔值 true
context 字符串 可选 要使用的上下文路径默认为git存储库的根目录
target 字符串 可选 要使用的构建目标必须在Docker文件中定义
force_tag 布尔值 可选 替换现有匹配的镜像标签 false
insecure 布尔值 可选 启用与此注册表的不安全通信 false
mirror 字符串 可选 使用镜像注册表而不是直接从中央Hub拉取图像
bip 布尔值 可选 用于传递桥接IP false
custom_dns 字符串 可选 为容器设置自定义DNS服务器
custom_dns_search 字符串 可选 Docker守护程序DNS搜索域
storage_driver 字符串 可选 支持aufsoverlayvfs驱动器
storage_path 字符串 可选 Docker守护程序存储路径
build_args 字符串 可选 传递给docker build的自定义参数
build_args_from_env 字符串 可选 将环境变量作为docker build的自定义参数传递
auto_tag 布尔值 可选 根据git分支和git标签自动生成标签名称 false
auto_tag_suffix 字符串 可选 使用此后缀生成标签名称
debug 布尔值 可选 以详细调试模式启动docker守护进程 false
launch_debug 布尔值 可选 以详细调试模式启动docker守护进程 false
mtu 字符串 可选 Docker守护程序自定义MTU设置
ipv6 字符串 可选 Docker守护程序IPv6网络
experimental 布尔值 可选 Docker守护程序实验模式 false
daemon_off 布尔值 可选 不启动docker守护进程 false
cache_from 字符串 可选 考虑作为缓存源的镜像
squash 布尔值 可选 在构建时压缩层 false
pull_image 布尔值 可选 强制在构建时拉取基础镜像 false
compress 布尔值 可选 使用gzip压缩构建上下文 false
custom_labels 字符串 可选 附加的k=v标签
label_schema 字符串 可选 label-schema标签
email 字符串 可选 Docker电子邮件
no_cache 字符串 可选 不使用缓存的中间容器
add_host 字符串 可选 附加的主机:IP映射
platform 字符串 可选 指定构建输出的目标平台,例如linux/amd64linux/arm64darwin/amd64
ssh-agent-key 字符串 可选 用于ssh直通的私钥参见https://docs.docker.com/engine/reference/commandline/buildx_build/#ssh 推荐使用密钥

Drone Webhook 通知构建结果

准备环境

  • 克隆仓库到本地

    git clone https://gitea.offends.cn/offends/Kubernetes.git && cd Kubernetes/CICD/Drone
    
  • 修改 Dockerfile 并上传至自己的仓库

  • 进入 Drone Web页面点击 SYNC 同步仓库

  • 点击 ACTIVATE REPOSITORY 激活存储库

  • 点击 Settings 修改 Configuration,修改后点击 SAVE CHANGES 保存

    .drone-build-webhook.yml
    
  • 配置 Secrets

    变量名 解释
    WEBHOOK_URL 发送 Webhook 的 URL https://open.feishu.cn/open-apis/bot/v2/hook/***

插件 plugins/webhook 参数

属性名 类型 必需性 描述 默认值
urls string required 发送 Webhook 的 URL none
username string optional 用于基本身份验证的用户名 none
password string optional 用于基本身份验证的密码 none
SECRET string 推荐使用的密钥 none
method string optional 请求使用的 HTTP 方法 POST
content_type string optional Webhook 的内容类型 application/json
template string optional Webhook 的自定义模板 none
headers array optional 自定义标头的映射 none
skip_verify boolean optional 跳过 SSL 验证 false
debug boolean optional 启用调试信息 false

Drone Dind 构建 Docker 镜像

准备环境

  • 克隆仓库到本地

    git clone https://gitea.offends.cn/offends/Kubernetes.git && cd Kubernetes/CICD/Drone
    
  • 修改 Dockerfile 并上传至自己的仓库

  • 进入 Drone Web页面点击 SYNC 同步仓库

  • 点击 ACTIVATE REPOSITORY 激活存储库

  • 点击 Settings 开启 Trusted (未开启无法挂载Docker守护进程)

  • 修改 Configuration,修改后点击 SAVE CHANGES 保存

    .drone-dind.yml
    
  • 配置 Secrets

    变量名 解释
    REGISTRY 镜像仓库地址 registry.cn-hangzhou.aliyuncs.com
    DOCKER_USERNAME 镜像仓库登录用户
    DOCKER_PASSWORD 镜像仓库登录密码
    NAMESPACE 镜像的仓库名称 <命名空间>
    IMAGENAME 镜像名称
    IMAGETAG 镜像标签

Drone 构建多架构 Docker 镜像

准备环境

  • 克隆仓库到本地

    git clone https://gitea.offends.cn/offends/Kubernetes.git && cd Kubernetes/CICD/Drone
    
  • 修改 Dockerfile 并上传至自己的仓库

  • 进入 Drone Web页面点击 SYNC 同步仓库

  • 点击 ACTIVATE REPOSITORY 激活存储库

  • 点击 Settings 下 General 修改 Configuration,修改后点击 SAVE CHANGES 保存

    .drone-buildx.yml
    
  • 配置 Secrets

    变量名 解释
    REGISTRY 镜像仓库地址 docker.io
    DOCKER_USERNAME 镜像仓库登录用户
    DOCKER_PASSWORD 镜像仓库登录密码
    REPO 镜像的仓库名称 docker.io/<命名空间>/<镜像名>

Drone Scp 文件到服务器内

准备环境

  • 克隆仓库到本地

    git clone https://gitea.offends.cn/offends/Kubernetes.git && cd Kubernetes/CICD/Drone
    
  • 修改 Dockerfile 并上传至自己的仓库

  • 进入 Drone Web页面点击 SYNC 同步仓库

  • 点击 ACTIVATE REPOSITORY 激活存储库

  • 点击 Settings 下 General 修改 Configuration,修改后点击 SAVE CHANGES 保存

    .drone-scp.yml
    
  • 配置 Secrets

    变量名 解释
    HOST 目标主机机器 192.168.1.10
    USER 目标主机机器用户名 Root
    PASSWORD 目标主机机器密码
    PORT 目标主机机器端口 22

插件 appleboy/drone-scp 参数

官方文档

属性名 类型 是否必需 描述 默认值
host 字符串 必需 目标主机机器。
port 数字 可选 目标主机机器端口。 22
username 字符串 必需 目标主机机器用户名。
password 字符串 必需 目标主机机器密码。
key 字符串 可选 目标主机机器私钥。建议保密。
passphrase 字符串 可选 私钥密码。建议保密。
target 字符串 必需 目标主机机器路径。
source 字符串 必需 源文件路径。
rm 布尔值 可选 复制后是否删除源文件。 false
timeout 数字 可选 超时时间(秒)。 30
command_timeout 数字 可选 命令超时时间(分钟)。 10
strip_components 数字 可选 从目标路径中去除的组件数。 0
tar_tmp_path 字符串 可选 用于临时存储tar文件的路径。
tar_exec 字符串 可选 Tar命令。
overwrite 布尔值 可选 如果目标文件存在,是否覆盖。 false
proxy_host 字符串 可选 代理主机。
proxy_port 数字 可选 代理端口。 0
proxy_username 字符串 可选 代理用户名。
proxy_password 字符串 可选 代理密码。建议保密。
proxy_key 字符串 可选 代理私钥。建议保密。
proxy_key_path 字符串 可选 代理私钥路径。
proxy_key_passphrase 字符串 可选 代理私钥密码。建议保密。

Drone Ssh 操作服务器

准备环境

  • 克隆仓库到本地

    git clone https://gitea.offends.cn/offends/Kubernetes.git && cd Kubernetes/CICD/Drone
    
  • 修改 Dockerfile 并上传至自己的仓库

  • 进入 Drone Web页面点击 SYNC 同步仓库

  • 点击 ACTIVATE REPOSITORY 激活存储库

  • 点击 Settings 下 General 修改 Configuration,修改后点击 SAVE CHANGES 保存

    .drone-ssh.yml
    
  • 配置 Secrets

    变量名 解释
    HOST 目标主机机器 192.168.1.10
    USER 目标主机机器用户名 Root
    PASSWORD 目标主机机器密码
    PORT 目标主机机器端口 22

插件 appleboy/drone-ssh 参数

官方文档

属性名 类型 是否必须 描述 默认值
host 字符串 必须 服务器的主机名或IP地址。
port 字符串 可选 服务器的端口。 22
username 字符串 可选 目标主机用户的帐户。
password 字符串 可选 登录到服务器的密码。 无(建议保密)
key 字符串 可选 用户私钥的明文。 无(建议保密)
key_path 字符串 可选 登录到服务器的私钥路径。
envs 数组 可选 在脚本部分可用的自定义秘密。
script 字符串 可选 在服务器上执行的命令。
script_stop 布尔值 可选 在第一次失败后停止脚本执行。 false
timeout 字符串 可选 SSH连接建立的最长时间。 30秒
command_timeout 字符串 可选 执行命令的最长时间。 10分钟
proxy_host 字符串 可选 代理的主机名或IP地址。
proxy_port 字符串 可选 代理端口。
proxy_username 字符串 可选 代理用户名。
proxy_password 字符串 可选 代理密码。 无(建议保密)
proxy_key 字符串 可选 代理私钥的明文。 无(建议保密)
proxy_key_path 字符串 可选 登录到代理的私钥路径。

Drone Git Push 代码

你不会,俺不会,大家一起都不会!

准备环境

  • 克隆仓库到本地

    git clone https://gitea.offends.cn/offends/Kubernetes.git && cd Kubernetes/CICD/Drone
    
  • 修改 Dockerfile 并上传至自己的仓库

  • 进入 Drone Web页面点击 SYNC 同步仓库

  • 点击 ACTIVATE REPOSITORY 激活存储库

  • 点击 Settings 下 General 修改 Configuration,修改后点击 SAVE CHANGES 保存

    .drone-git-push.yml
    
  • 配置 Secrets

    变量名 解释
    REMOTE 目标远程仓库 <仓库 clone 地址>
    SSH_KEY 远程机器的私有SSH密钥 <应该是 .ssh/id_rsa 文件>

插件 appleboy/drone-git-push 参数

官方文档

属性名 类型 是否必须 描述 默认值
ssh_key 字符串 可选 远程机器的私有SSH密钥。
remote 字符串 必须 目标远程仓库(如果为空,则假定存在)。
remote_name 字符串 可选 用于本地操作的远程的名称。 deploy
branch 字符串 可选 要推送到的目标分支。 master
local_branch 字符串 可选 从中推送的本地分支或引用。 HEAD
path 字符串 可选 仓库的路径。 当前仓库
force 布尔值 可选 使用 --force 标志进行强制推送。 false
skip_verify 布尔值 可选 跳过HTTPS证书的验证。 false
commit 布尔值 可选 在推送之前添加并提交仓库的内容。 false
commit_message 字符串 可选 为提交添加自定义消息。 [skip ci] Commit dirty state
empty_commit 布尔值 可选 如果没有更改,则创建一个空的提交。 false
author_name 字符串 可选 提交的作者姓名。 commiter name
author_email 字符串 可选 提交的作者电子邮件。 commiter email
followtags 布尔值 可选 使用 --follow-tags 选项推送。 false