Files
docker_practice/21_case_devops/drone.md
2026-02-22 15:33:20 -08:00

2.1 KiB
Raw Blame History

21.3 Drone

基于 DockerCI/CD 工具 Drone,所有编译、测试的流程都在容器中进行。

开发者只需在项目中包含 .drone.yml 文件,将代码推送到 git 仓库,Drone 就能够自动化地进行编译、测试、发布。

本小节以 GitHub + Drone 来演示 Drone 的工作流程。 当然在实际开发过程中,你的代码也许不在 GitHub 托管,那么你可以尝试使用 Gogs + Drone 来进行 CI/CD。

21.3.1 关联项目

在 GitHub 新建一个名为 drone-demo 的仓库。

打开我们已经部署好的 Drone 网站或者 Drone Cloud 使用 GitHub 账号登录,在界面中关联刚刚新建的 drone-demo 仓库。

21.3.2 编写项目源代码

初始化一个 git 仓库:

mkdir drone-demo
cd drone-demo

git init

git remote add origin git@github.com:username/drone-demo.git

这里以一个简单的 Go 程序为例,该程序输出 Hello World!

编写 app.go 文件:

package main

import "fmt"

func main() {
    fmt.Printf("Hello World!\n")
}

编写 .drone.yml 文件:

kind: pipeline
type: docker
name: build

steps:
  - name: build
    image: golang:alpine
    pull: if-not-exists
    environment:
      KEY: VALUE
    commands:
      - echo $KEY
      - pwd
      - ls
      - CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o app .
      - ./app

trigger:
  branch:
    - master

现在目录结构如下:

.
├── .drone.yml
└── app.go

21.3.3 推送项目源代码到 GitHub

运行以下命令:

git add .

git commit -m "test drone ci"

git push origin master

21.3.4 查看项目构建过程及结果

打开我们部署好的 Drone 网站或者 Drone Cloud即可看到构建结果。

图

当然我们也可以把构建结果上传到 GitHub、Docker Registry、 云服务商提供的对象存储,或者生产环境中。

21.3.5 参考链接