Dagger
DevOps 🔴 SeniorDéfinition
Moteur de CI/CD créé par Solomon Hykes (fondateur de Docker) : les pipelines s'écrivent comme des fonctions en Go, Python, TypeScript, Java, PHP ou Rust, s'exécutent dans des conteneurs avec cache de chaque opération, et tournent à l'identique en local et sur n'importe quelle CI. Lancé en version 0.2 le 30 mars 2022, le projet a annoncé en septembre 2026 une version 1.0 imminente et propose des moteurs managés (Cloud Engines).
Analogie
Au lieu d'écrire la recette en pictogrammes propres à chaque cuisine (YAML GitHub, YAML GitLab…), vous l'écrivez une fois dans votre langue et un robot la cuisine partout.
Exemple de code
// dagger/src/index.ts
import { dag, Container, Directory, object, func } from "@dagger.io/dagger";
@object()
class Ci {
@func()
test(source: Directory): Container {
return dag.container()
.from("node:24-alpine")
.withDirectory("/app", source)
.withWorkdir("/app")
.withExec(["npm", "ci"]) // chaque étape est cachée
.withExec(["npm", "test"]);
}
}
// dagger call test --source=. (même résultat en local et en CI)
Cas d'usage
Pipelines complexes à tester en local avant de pousser, ou équipes qui veulent sortir du YAML spécifique à une plateforme CI.
Anti-pattern
Termes liés
Sources
Fiche mise à jour le 2026-09-27