Skip to content

Démo d’un runner GitHub Actions auto-hébergé fonctionnant dans un conteneur Docker, optimisé pour les projets PHP. Permet d’exécuter vos workflows CI/CD localement ou sur un serveur privé avec contrôle total et meilleure confidentialité.

License

Notifications You must be signed in to change notification settings

xamayca/Docker-Github-actions-runner-self-hosted-example

Repository files navigation

GitHub actions runner self-hosted example (Docker)

Code Quality Badge


Ce projet met en place un runner GitHub Actions auto-hébergé dans un conteneur Docker, optimisé pour un environnement PHP.


Voici les étapes clés du fonctionnement interne du conteneur :

  • Le conteneur est basé sur l’image officielle PHP CLI tournant sur Debian.
  • La dernière version de l'image officielle Composer (latest-bin) est copiée dans le conteneur pour gérer les dépendances PHP.
  • Les dépendances nécessaires sont installées automatiquement lors de la construction de l’image.
  • Un utilisateur non-root avec privilèges sudo est créé pour assurer la sécurité et la bonne gestion des permissions.
  • Au démarrage du conteneur, un script entrypoint :
    • Télécharge la dernière version du Github Actions runner (Release) depuis GitHub.
    • Extrait et installe le runner dans le conteneur.
    • Configure et authentifie le runner à l’aide du jeton personnel fourni.
    • Lance le runner, prêt à recevoir et exécuter les jobs GitHub Actions.

De cette façon à chaque push ou pull request, ce runner auto-hébergé exécute vos workflows CI/CD localement ou sur un serveur privé, offrant un contrôle total et une meilleure confidentialité pour votre code.

Le workflow inclus dans ce projet réalise notamment :

  • L’action GitHub checkout pour cloner les fichiers du projet dans l’environnement du runner.
  • L'installation des dépendances PHP du projet via Composer.
  • Une analyse statique du code avec PHPStan.
  • L’exécution des tests unitaires avec PHPUnit.

📋 Prérequis


⚙️ Installation du GitHub Actions Runner dans Docker

1. Clonage du dépot

git clone https://github.com/xamayca/Docker-Github-actions-runner-self-hosted-example.git

2. Accéder au répertoire du projet

cd Docker-Github-actions-runner-self-hosted-example

3. Ajouter les variables d’environnement

Crée un fichier .env à la racine du projet avec les variables suivantes, en remplaçant les valeurs par celles de votre projet :

GITHUB_PERSONAL_TOKEN="<JETON_PERSONNEL_GITHUB>"
GITHUB_REPOSITORY_OWNER="<NOM_D_UTILISATEUR_GITHUB>"
GITHUB_REPOSITORY_NAME="<NOM_DU_DEPOT_GITHUB>"

4. Construction de l'image Docker du GitHub Actions Runner

Cette commande télécharge les images nécessaires et construit le conteneur avant de le lancer :

docker compose up --build

Mise à jour du GitHub Actions Runner

💡 Astuce :

Le runner GitHub Actions est régulièrement mis à jour.

Si une nouvelle version est disponible, pense à mettre à jour les variables correspondantes dans ton fichier .env.

RUNNER_VERSION="VERSION_DE_LA_RELEASE"
RUNNER_SHA256="SHA-256-DE-L_ARCHIVE"

Pour cela, consulte les dernières releases disponibles et récupère la dernière version du runner ainsi que le SHA-256 de l’archive sur ce lien : https://github.com/actions/runner/releases/

About

Démo d’un runner GitHub Actions auto-hébergé fonctionnant dans un conteneur Docker, optimisé pour les projets PHP. Permet d’exécuter vos workflows CI/CD localement ou sur un serveur privé avec contrôle total et meilleure confidentialité.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published