Schlagwort-Archive: gitlab runner

GitLab CI Runner im Docker Container [GitLab Runner] [Docker] [PHP] [NodeJS] [LESSCSS]

bitconnect

Ich habe ja bereits berichtet, dass ich meine GitLab-Installation in einen Docker-Container verfrachtet habe. Nun möchte ich passend dazu natürlich auch meine GitLab-Runner in Docker-Containern laufen lassen. Was mir hierbei gut gefällt: Das restliche System ist von den für Build-Prozesse notwendigen Tools nicht zugemüllt.

GitLab Runner im Docker-Container laufen lassen

Wie in der originalen Anleitung zu lesen, ist es gar nicht schwer, einen GitLab-Runner im Docker-Container auszuführen:

Doch ich will natürlich noch einige zusätzliche Tools für PHP-Entwicklung in den Runner einbinden.

Ein PHP-Optimierter GitLab-Runner

Das tolle an Docker: Auf bestehenden Images aufbauen und diese erweitern. Mit einem Dockerfile.

Ich habe also mein eigenes Dockerfile geschrieben:

Kurz erklärt: Was hier passiert ist quasi das originale Docker-Kommando (siehe ganz oben). Es wird also das Docker-Image „gitlab/gitlab-runner:latest“ geladen. Dann werden zusätzliche Kommandos ausgeführt.

  1. Die Liste der verfügbaren Programme aktualisieren
  2. Neue Pakete installieren: php5, php5-pear, zip, curl, php5-mcrypt, NodeJS, npm und ncftp
  3. Das mcrypt-PHP-Modul aktivieren
  4. nochmals vergügbare Programme aktualisieren
  5. Neue Pakete installieren: php5-xsl
  6. NodeJS passend verlinken
  7. Den LessCSS-Precompiler über NodeJS installieren
  8. phpmd installieren
  9. phploc installieren
  10. Composer installieren
  11. phpcpd installieren
  12. phpdox installieren

Mit dieser Palette an Tools kann ich meine Projekte optimal bauen. Jetzt muss ich das Docker-Image nur noch erstellen und ausführen lassen:

Nun läuft mein PHP-Optimierter GitLab-Runner. Jetzt muss er nur noch registriert werden, dazu führt man folgendes Kommando aus und befolgt die Anweisungen:

Meinen Runner nutzen

Wenn Du dich um das Dockerfile nicht kümmern möchtest, aber meine Tool-Palette cool findet, kannst Du genau diesen Runner auf jedem Server installieren, dazu nutzt du statt dem obigen docker-build Kommande folgendes:

Nun zieht dein Docker sich das Dockerfile aus meinem öffentlichen Repository und baut das Docker-Image.