hostprofi.ru
Подобрать хостинг
Термин·буква D

Drone CI

краткое определение

Drone CI — open-source контейнерно-нативная CI/CD-платформа. Каждая стадия сборки выполняется в изолированном Docker-контейнере. Конфигурация описывается в .drone.yml в репозитории. В 2020 году приобретена компанией Harness.

Drone CI — платформа непрерывной интеграции и доставки с открытым исходным кодом, построенная на контейнерной архитектуре. Каждый шаг pipeline выполняется в отдельном Docker-контейнере с изолированной файловой системой. Проект начат в 2012 году, в 2020 году приобретён компанией Harness.

Как работает

Конфигурация Drone CI хранится в файле .drone.yml в корне репозитория — принцип Pipeline as Code. Пример минимального pipeline:

kind: pipeline
type: docker
name: default

steps:
  - name: test
    image: golang:1.21
    commands:
      - go test ./...

  - name: build
    image: golang:1.21
    commands:
      - go build -o app .

  - name: deploy
    image: appleboy/drone-ssh
    settings:
      host: server.example.com
      username: deploy
      key:
        from_secret: ssh_key
      script:
        - ./deploy.sh

Каждый step запускает отдельный контейнер с указанным Docker-образом. Шаги исполняются последовательно; при провале любого шага pipeline останавливается. Контейнеры шагов разделяют один рабочий workspace через Docker volume — файлы, созданные в предыдущем шаге, доступны в следующем.

Drone Server — центральный компонент, хранит статусы сборок и принимает webhook-события от GitHub, GitLab, Bitbucket. Drone Runner — агент на сервере, выполняющий pipeline. Runnerы бывают: Docker Runner (Linux/Windows контейнеры), Kubernetes Runner (запуск в k8s), SSH Runner (команды на удалённом сервере), Exec Runner (напрямую на хосте).

История

Drone CI создан Брэдом Риком (Brad Ryck) в 2012 году как первая cloud-native, container-native CI-система — раньше, чем Docker получил массовое распространение. Первый публичный релиз вышел в 2014 году. К 2020 году Drone набрал более 50 000 активных пользователей и 100 миллионов загрузок образа с Docker Hub. В августе 2020 года компания Harness приобрела Drone.io, взяв на себя обязательства по поддержке open-source версии. Основная ветка разработки продолжается под лицензией Apache 2.0.

Drone CI vs GitHub Actions vs GitLab CI

КритерийDrone CIGitHub ActionsGitLab CI
Self-hostedДа (основной режим)Да (runners)Да
Конфиг.drone.yml.github/workflows/*.yml.gitlab-ci.yml
КонтейнерыНативно (каждый step)ОпциональноНативно
Marketplace плагинов250+ Drone plugins20,000+ actionsCI templates

На что обращать внимание

Drone CI требует Docker на машине с runner — это одновременно его сильная и слабая сторона. На серверах без Docker (например, OpenVZ-контейнеры, не поддерживающие вложенную виртуализацию) Drone не работает. Секреты (пароли, ключи) хранятся в Drone Server или в системах хранения секретов; из .drone.yml доступны через from_secret. При self-hosted установке Drone Server нужен TLS и доступный публичный URL для приёма webhook от GitHub/GitLab.

Drone CI на VPS

Drone CI — container-first CI/CD: каждый шаг pipeline выполняется в изолированном Docker-контейнере. Установка: Drone Server + Runner через Docker Compose на VPS. Интеграция с GitHub, GitLab, Gitea. Файл .drone.yml в корне репозитория описывает pipeline. Runners: Docker Runner (стандартный), Kubernetes Runner (в Kubernetes), Exec Runner (нативно на хосте). Преимущества перед Jenkins: меньше ресурсов, проще конфигурация. Конкуренты: GitHub Actions (бесплатно для GitHub), Woodpecker CI (форк Drone). Бесплатен для self-hosted установок.

Другие термины