synchronization

This commit is contained in:
2025-08-25 17:53:08 +08:00
commit c201eb5ef9
318 changed files with 23092 additions and 0 deletions

3
CICD/Drone/Dockerfile Normal file
View File

@@ -0,0 +1,3 @@
FROM busybox:latest
RUN echo "Hello World!"

View File

@@ -0,0 +1,32 @@
> 本文作者:丁辉
# Drone客户端安装
## 开始安装
[Homebrew官网](https://brew.sh/index_zh-cn)
- Linux 安装 Homebrew
```bash
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
```
- MAC 使用 Homebrew 安装 Drone命令
```bash
brew tap drone/drone
brew install drone
```
## 使用命令触发 Drone 构建
[Drone 命令官网](https://0-8-0.docs.drone.io/zh/cli-installation/)
```bash
curl -X POST \
-H "Authorization: Bearer $YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
https://your.drone.instance/api/repos/用户/仓库名/builds
```

32
CICD/Drone/Docs/README.md Normal file
View File

@@ -0,0 +1,32 @@
> 本文作者:丁辉
# Drone的使用
## 快速启动 Runner 执行端
```bash
docker run --detach \
--volume=/var/run/docker.sock:/var/run/docker.sock \
--env=DRONE_RPC_PROTO=https \
--env=DRONE_RPC_HOST= \
--env=DRONE_RPC_SECRET= \
--env=DRONE_RUNNER_CAPACITY=4 \
--env=DRONE_RUNNER_NAME=runner \
--restart=always \
--name=runner \
drone/drone-runner-docker
```
> Runner 添加标签
>
> ```bash
> --from-literal=DRONE_RUNNER_LABELS=<标签:值> \
> ```
## Kubernetes部署文档
- [Helm部署Drone](https://gitee.com/offends/Kubernetes/blob/main/Helm/Helm%E9%83%A8%E7%BD%B2Drone.md)
- [Helm部署Drone-Runner-Docker](https://gitee.com/offends/Kubernetes/blob/main/Helm/Helm%E9%83%A8%E7%BD%B2Drone-Runner-Docker.md)
- [Helm部署Drone-Runner-Kube](https://gitee.com/offends/Kubernetes/blob/main/Helm/Helm%E9%83%A8%E7%BD%B2Drone-Runner-Kube.md)
- [Helm部署Drone-Kubernetes-Secrets](https://gitee.com/offends/Kubernetes/blob/main/Helm/Helm%E9%83%A8%E7%BD%B2Drone-Kubernetes-Secrets.md)

3
CICD/Drone/File/Demo.md Normal file
View File

@@ -0,0 +1,3 @@
*
This is a test file

View File

@@ -0,0 +1,27 @@
apiVersion: v1
kind: ServiceAccount
metadata:
name: admin-user
namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: admin-user
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: admin-user
namespace: kube-system
---
apiVersion: v1
kind: Secret
metadata:
name: admin-token
namespace: kube-system
annotations:
kubernetes.io/service-account.name: admin-user
type: kubernetes.io/service-account-token

361
CICD/Drone/README.md Normal file
View File

@@ -0,0 +1,361 @@
> 本文作者:丁辉
# DronePlugins构建Docker镜像
## 准备环境
- 克隆仓库到本地
```bash
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 参数
[官网文档](https://plugins.drone.io/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 | 字符串 | 可选 | 支持`aufs`、`overlay`或`vfs`驱动器 | 无 |
| 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/amd64`、`linux/arm64`或`darwin/amd64` | 无 |
| ssh-agent-key | 字符串 | 可选 | 用于ssh直通的私钥参见https://docs.docker.com/engine/reference/commandline/buildx_build/#ssh | 推荐使用密钥 |
# Drone Webhook 通知构建结果
## 准备环境
- 克隆仓库到本地
```bash
git clone https://gitea.offends.cn/offends/Kubernetes.git && cd Kubernetes/CICD/Drone
```
- 修改 Dockerfile 并上传至自己的仓库
- 进入 Drone Web页面点击 SYNC 同步仓库
- 点击 ACTIVATE REPOSITORY 激活存储库
- 点击 Settings 修改 Configuration,修改后点击 SAVE CHANGES 保存
```bash
.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 镜像
## 准备环境
- 克隆仓库到本地
```bash
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 保存
```bash
.drone-dind.yml
```
- 配置 Secrets
| 变量名 | 解释 | 例 |
| :-------------: | :--------------: | :-------------------------------: |
| REGISTRY | 镜像仓库地址 | registry.cn-hangzhou.aliyuncs.com |
| DOCKER_USERNAME | 镜像仓库登录用户 | |
| DOCKER_PASSWORD | 镜像仓库登录密码 | |
| NAMESPACE | 镜像的仓库名称 | <命名空间> |
| IMAGENAME | 镜像名称 | |
| IMAGETAG | 镜像标签 | |
# Drone 构建多架构 Docker 镜像
## 准备环境
- 克隆仓库到本地
```bash
git clone https://gitea.offends.cn/offends/Kubernetes.git && cd Kubernetes/CICD/Drone
```
- 修改 Dockerfile 并上传至自己的仓库
- 进入 Drone Web页面点击 SYNC 同步仓库
- 点击 ACTIVATE REPOSITORY 激活存储库
- 点击 Settings 下 General 修改 Configuration,修改后点击 SAVE CHANGES 保存
```bash
.drone-buildx.yml
```
- 配置 Secrets
| 变量名 | 解释 | 例 |
| :-------------: | :--------------: | :---------------------------: |
| REGISTRY | 镜像仓库地址 | docker.io |
| DOCKER_USERNAME | 镜像仓库登录用户 | |
| DOCKER_PASSWORD | 镜像仓库登录密码 | |
| REPO | 镜像的仓库名称 | docker.io/<命名空间>/<镜像名> |
# Drone Scp 文件到服务器内
## 准备环境
- 克隆仓库到本地
```bash
git clone https://gitea.offends.cn/offends/Kubernetes.git && cd Kubernetes/CICD/Drone
```
- 修改 Dockerfile 并上传至自己的仓库
- 进入 Drone Web页面点击 SYNC 同步仓库
- 点击 ACTIVATE REPOSITORY 激活存储库
- 点击 Settings 下 General 修改 Configuration,修改后点击 SAVE CHANGES 保存
```bash
.drone-scp.yml
```
- 配置 Secrets
| 变量名 | 解释 | 例 |
| :------: | :----------------: | :----------: |
| HOST | 目标主机机器 | 192.168.1.10 |
| USER | 目标主机机器用户名 | Root |
| PASSWORD | 目标主机机器密码 | |
| PORT | 目标主机机器端口 | 22 |
## 插件 appleboy/drone-scp 参数
[官方文档](https://plugins.drone.io/plugins/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 操作服务器
## 准备环境
- 克隆仓库到本地
```bash
git clone https://gitea.offends.cn/offends/Kubernetes.git && cd Kubernetes/CICD/Drone
```
- 修改 Dockerfile 并上传至自己的仓库
- 进入 Drone Web页面点击 SYNC 同步仓库
- 点击 ACTIVATE REPOSITORY 激活存储库
- 点击 Settings 下 General 修改 Configuration,修改后点击 SAVE CHANGES 保存
```bash
.drone-ssh.yml
```
- 配置 Secrets
| 变量名 | 解释 | 例 |
| :------: | :----------------: | :----------: |
| HOST | 目标主机机器 | 192.168.1.10 |
| USER | 目标主机机器用户名 | Root |
| PASSWORD | 目标主机机器密码 | |
| PORT | 目标主机机器端口 | 22 |
## 插件 appleboy/drone-ssh 参数
[官方文档](https://plugins.drone.io/plugins/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 代码
> 你不会,俺不会,大家一起都不会!
## 准备环境
- 克隆仓库到本地
```bash
git clone https://gitea.offends.cn/offends/Kubernetes.git && cd Kubernetes/CICD/Drone
```
- 修改 Dockerfile 并上传至自己的仓库
- 进入 Drone Web页面点击 SYNC 同步仓库
- 点击 ACTIVATE REPOSITORY 激活存储库
- 点击 Settings 下 General 修改 Configuration,修改后点击 SAVE CHANGES 保存
```bash
.drone-git-push.yml
```
- 配置 Secrets
| 变量名 | 解释 | 例 |
| :-----: | :-------------------: | :-----------------------: |
| REMOTE | 目标远程仓库 | <仓库 clone 地址> |
| SSH_KEY | 远程机器的私有SSH密钥 | <应该是 .ssh/id_rsa 文件> |
## 插件 appleboy/drone-git-push 参数
[官方文档](https://plugins.drone.io/plugins/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 |

View File

@@ -0,0 +1,72 @@
kind: pipeline
type: docker
name: Build Dockerfile
# 手动触发或接口触发
trigger:
event:
- custom
# 指定架构,需在 runner 配置环境变量中指定 DRONE_RUNNER_ARCH,或自动获取
# platform:
# os: linux
# arch: amd64
# 指定运行环境节点,需在 runner 配置环境变量中指定 DRONE_RUNNER_LABELS
# node:
# 标签:值
# 使用插件构建镜像
steps:
- name: Build Dockerfile
image: plugins/docker
# 仅当本地不存在该镜像时才拉取
pull: if-not-exists
settings:
registry:
from_secret: REGISTRY
username:
from_secret: DOCKER_USERNAME
password:
from_secret: DOCKER_PASSWORD
repo:
from_secret: REPO
# 是否禁止推送镜像
dry_run: false
tags:
- latest
# 要使用的上下文路径,默认为 git 存储库的根目录
context: ./
# 要使用的 dockerfile 路径,默认为 git 存储库的根目录
dockerfile: ./Dockerfile
- name: 结果通知
image: plugins/webhook
depends_on: [Build Dockerfile]
settings:
urls:
from_secret: WEBHOOK_URL
# # 飞书机器人
# 官网飞书机器人使用指南: https://open.feishu.cn/document/client-docs/bot-v3/add-custom-bot
# 消息类型指南: https://open.feishu.cn/community/articles/7271149634339422210
method: POST
content_type: "application/json"
# 通知内容,读取上一步执行结果,如果成功则返回构建成功,失败则返回构建失败
template: >
{
"msg_type": "text",
"content": {
"text":
{{#success build.status}}
"镜像构建成功"
{{else}}
"镜像构建失败"
{{/success}}
}
}
# 无论构建成功或失败都通知
when:
status:
- success
- failure

View File

@@ -0,0 +1,38 @@
kind: pipeline
type: docker
name: Build Dockerfile
# 手动触发或接口触发
trigger:
event:
- custom
# 指定运行环境节点,需在 runner 配置环境变量中指定 DRONE_RUNNER_LABELS
# node:
# 标签:值
# 使用插件构建镜像
steps:
- name: latest
image: thegeeklab/drone-docker-buildx
privileged: true
settings:
registry:
from_secret: REGISTRY
username:
from_secret: DOCKER_USERNAME
password:
from_secret: DOCKER_PASSWORD
repo:
from_secret: REPO
purge: true
compress: true
platforms:
- linux/amd64
- linux/arm64
context: ./
dockerfile: ./Dockerfile
tags: latest
when:
branch:
- main

View File

@@ -0,0 +1,22 @@
kind: pipeline
name: default
trigger:
event:
include:
- custom
steps:
- name: Update-Deployment
image: quay.io/honestbee/drone-kubernetes
settings:
kubernetes_server:
from_secret: KUBERNESTES_SERVER
kubernetes_token:
from_secret: KUBERNESTES_TOKEN
namespace: default
deployment: nginx
repo: nginx
container: nginx
tag:
- latest

View File

@@ -0,0 +1,61 @@
kind: pipeline
type: docker
name: Build Dockerfile
# platform:
# os: linux
# arch: amd64
# 手动触发或接口触发
trigger:
event:
- custom
steps:
- name: Dockerfile
image: docker:dind
# 挂载Docker守护进程
volumes:
- name: dockersock
path: /var/run/docker.sock
# 环境变量
environment:
DOCKER_USERNAME:
from_secret: DOCKER_USERNAME
DOCKER_PASSWORD:
from_secret: DOCKER_PASSWORD
NAMESPACE:
from_secret: NAMESPACE
# 镜像名
IMAGENAME: demo
# 镜像标签
IMAGETAG: latest
# 镜像仓库私有地址
REGISTRY:
from_secret: REGISTRY
# 执行命令
commands:
# 推送镜像至阿里云
# - docker build -t registry.cn-hangzhou.aliyuncs.com/$NAMESPACE/$IMAGENAME:$IMAGETAG .
# - docker login registry.cn-hangzhou.aliyuncs.com -u $DOCKER_USERNAME -p $DOCKER_PASSWORD
# - docker push registry.cn-hangzhou.aliyuncs.com/$NAMESPACE/$IMAGENAME:$IMAGETAG
# 推送镜像至DockerHub
# - docker build -t $DOCKER_USERNAME/$IMAGENAME:$IMAGETAG .
# - docker login -u $DOCKER_USERNAME -p $DOCKER_PASSWORD
# - docker push $DOCKER_USERNAME/$IMAGENAME:$IMAGETAG
# 推送镜像至私有仓库
- docker build -t $REGISTRY/$NAMESPACE/$IMAGENAME:$IMAGETAG .
- docker login $REGISTRY -u $DOCKER_USERNAME -p $DOCKER_PASSWORD
- docker push $REGISTRY/$NAMESPACE/$IMAGENAME:$IMAGETAG
# 挂载Docker守护进程
volumes:
- name: dockersock
host:
path: /var/run/docker.sock

View File

@@ -0,0 +1,24 @@
kind: pipeline
type: docker
name: Git Push
# 手动触发或接口触发
trigger:
event:
- custom
steps:
- name: Git Push
image: appleboy/drone-git-push
# 仅当本地不存在该镜像时才拉取
pull: if-not-exists
settings:
branch: main
remote:
from_secret: REMOTE
ssh_key:
from_secret: SSH_KEY
path:
force: false
commit: true
commit_message: "Update From Drone"

View File

@@ -0,0 +1,31 @@
kind: pipeline
type: docker
name: Scp File
# 手动触发或接口触发
trigger:
event:
- custom
steps:
- name: Scp File
image: appleboy/drone-scp
# 仅当本地不存在该镜像时才拉取
pull: if-not-exists
settings:
host:
from_secret: HOST
user:
from_secret: USER
password:
from_secret: PASSWORD
port:
from_secret: PORT
# 源文件路径
source: File/*
strip_components: 1
# 目标路径
target: /root/
when:
branch:
- main

View File

@@ -0,0 +1,29 @@
kind: pipeline
type: docker
name: Ssh Server
# 手动触发或接口触发
trigger:
event:
- custom
steps:
- name: Ssh Server
image: appleboy/drone-ssh
# 仅当本地不存在该镜像时才拉取
pull: if-not-exists
settings:
host:
from_secret: HOST
user:
from_secret: USER
password:
from_secret: PASSWORD
port:
from_secret: PORT
# 执行命令
script:
- ls
when:
branch:
- main

44
CICD/Drone/YML/.drone.yml Normal file
View File

@@ -0,0 +1,44 @@
kind: pipeline
type: docker
name: Build Dockerfile
# 手动触发或接口触发
trigger:
event:
- custom
# 指定架构,需在 runner 配置环境变量中指定 DRONE_RUNNER_ARCH,或自动获取
# platform:
# os: linux
# arch: amd64
# 指定运行环境节点,需在 runner 配置环境变量中指定 DRONE_RUNNER_LABELS
# node:
# 标签:值
# 使用插件构建镜像
steps:
- name: Build Dockerfile
image: plugins/docker
# 仅当本地不存在该镜像时才拉取
pull: if-not-exists
settings:
registry:
from_secret: REGISTRY
username:
from_secret: DOCKER_USERNAME
password:
from_secret: DOCKER_PASSWORD
repo:
from_secret: REPO
# 是否禁止推送镜像
dry_run: false
tags:
- latest
# 要使用的上下文路径,默认为 git 存储库的根目录
context: ./
# 要使用的 dockerfile 路径,默认为 git 存储库的根目录
dockerfile: ./Dockerfile
when:
branch:
- main