Aller au contenu
Sylvain Joffraud l4w
Retour

GitHub Actions self-hosted runners : Docker ou systemd ?

Je voulais des minutes CI illimitées sur mes projets perso. Solution : self-hosted runners sur mon serveur.

J’ai commencé par les faire tourner en Docker container (image myoung34/github-runner, propre, isolé). Tout marchait… jusqu’au workflow avec services: postgres.

Erreur :

exec: "/__e/node20/bin/node": no such file or directory

Ce que GitHub Actions fait : quand tu as services:, il encapsule le job dans son propre container et y mount le binaire node du runner via /__e/. Si le runner tourne lui-même dans un container, ce mount ne fonctionne pas — le docker daemon de l’hôte ne voit pas les fichiers internes au container du runner.

La solution officielle de GitHub : faire tourner le runner directement sur l’hôte (binaire + systemd service). Pas en container.

Migration faite : 3 services systemd, user dédié actions-runner (UID 1002, dans le groupe docker, sans sudo). Workflow avec services postgres : ✅ passe.

Leçon : tout ne se conteneurise pas. Et la doc officielle existe pour de bonnes raisons.


Partager cet article :

Article précédent
Coolify : le PaaS open source qui remplace Vercel et Netlify
Article suivant
OVH : renommer le user debian sans casser sa session SSH