Mettre en place une CI/CD avec Drone CI et Docker

Publié le 2 juillet 2025

DevOps
CI/CD

Drone CI est une plateforme d’intégration et de déploiement continu légère, container-native et open source. Elle utilise Docker pour exécuter chaque étape du pipeline dans un conteneur isolé, garantissant reproductibilité et isolation.

Prérequis

  • Serveur Linux (Debian/Ubuntu ou CentOS/Rocky)
  • Docker & Docker Compose installés
  • Domaine ou sous-domaine pointant vers votre instance Drone

Installation de Drone Server

  1. Créez un dossier de configuration :

    mkdir -p ~/drone && cd ~/drone
    
  2. Rédigez le fichier docker-compose.yml :

    version: '3'
    services:
      drone-server:
        image: drone/drone:2
        ports:
          - 80:80
        volumes:
          - ./data:/data
        environment:
          DRONE_GITEA_SERVER: https://gitea.example.com
          DRONE_RPC_SECRET: change_this_with_a_long_secret
          DRONE_SERVER_HOST: drone.example.com
          DRONE_SERVER_PROTO: https
        restart: always
    
  3. Lancez Drone :

    docker-compose up -d
    

Configuration OAuth

  • Créez une application OAuth dans votre serveur Git (Gitea/GitHub).
  • Ajoutez DRONE_GITEA_CLIENT_ID et DRONE_GITEA_CLIENT_SECRET dans les variables d'environnement du service drone-server.
  • Redémarrez le conteneur.

Déploiement d’un Runner

Ajoutez dans docker-compose.yml :

  drone-agent:
    image: drone/agent:2
    environment:
      DRONE_RPC_PROTO: https
      DRONE_RPC_HOST: drone.example.com
      DRONE_RPC_SECRET: change_this_with_a_long_secret
    restart: always
    depends_on:
      - drone-server

Puis :

docker-compose up -d drone-agent

Premier pipeline (fichier .drone.yml)

kind: pipeline
type: docker
name: default

steps:
- name: test
  image: node:18
  commands:
    - npm ci
    - npm test

- name: build
  image: docker
  commands:
    - docker build -t example/app:${DRONE_BUILD_NUMBER} .
    - docker push example/app:${DRONE_BUILD_NUMBER}

Sécurisation et bonnes pratiques

  • Utilisez HTTPS (Let’s Encrypt).
  • Protégez votre secret RPC.
  • Restreignez l’accès aux runners via firewall.

Conclusion

Drone CI propose un pipeline CI/CD simple, évolutif et fiable, idéal pour les environnements Dockerisés.

Besoin d'aide sur ce sujet ?

Notre équipe d'experts est là pour vous accompagner dans vos projets.

Contactez-nous

Articles similaires qui pourraient vous intéresser