Zurück

Wie man ein privates Repo über composer.json via Gitlab CI/CD klont

2/7/2021
Pavel Trzaskalik

Composer ist ein Werkzeug zur Verwaltung von Abhängigkeiten in PHP. Es erlaubt Ihnen, die Bibliotheken zu deklarieren, von denen Ihr Projekt abhängt, und es wird diese für Sie verwalten (installieren/aktualisieren).

Als DevOps-Spezialist bei SABO habe ich eine Anfrage von unseren Entwicklern bekommen, eine private Repo in der composer.json-Datei zu verwenden. Und idealerweise sollte es ein Gitlab CI/CD verwenden, um den Build und das Deployment komplett zu übernehmen. Die Frage ist, wie man das macht.

‍

In composer.json sieht das so aus:

{% c-block language="markdown" %}
…
…
 "repositories": [
       {
           "type": "vcs",
           "url": “git@gitlab.mydomain.com:my_awesome_repo.git”
…
…
{% c-block-end %}

‍

Wenn Sie dies verwenden möchten, benötigen Sie drei Dinge:

1) Dockerfile mit Zugriff auf Ihr großartiges Repo.
2) Korrekte GitLab-Variablen.
3) Gitlab yaml nicht vergessen.

‍

1) Dockerfile benötigt Zugriff auf Ihr Repo und am besten richten Sie id_rsa darin ein, etwa so:

{% c-block language="markdown" %}
…
…
RUN mkdir /root/.ssh && \
       echo "$COMPOSER_CONFIG" > /root/.ssh/config && \
       echo "$COMPOSER_KEY" > /root/.ssh/id_rsa && \
       chmod 0600 /root/.ssh/id_rsa
…
…
{% c-block-end %}

Dieses kleine Skript innerhalb von Dockerfile erzeugt die id_rsa-Datei im richtigen Pfad - genau dort, wo das System die Datei benötigt. Aber wir müssen diese über Gitlab CI/CD und GitLab ENV verwenden:

‍

2) Im Gitlab-Projekt ENV müssen wir zwei neue Variablen anlegen: COMPOSER_CONFIG und COMPOSER_KEY, wobei:

COMPOSER_KEY ist der Schlüssel, den Sie (oder ein anderer Gitlab-Benutzer; für mich ist  composer_user am besten) in SSH KEY als öffentlichen Schlüssel haben. Ja, COMPOSER_KEY ist RSA KEY und COMPOSER_CONFIG muss so aussehen:

{% c-block language="markdown" %}
“Host *
      StrictHostKeyChecking no

“
{% c-block-end %}

- lassen Sie die Anführungszeichen weg, ABER fügen Sie eine Leerzeile am Ende hinzu. Diese Konfiguration ermöglicht es dem Klon, nicht nach einem Fingerabdruck zu fragen.

‍

In GitLab sieht das Setup wie folgt aus:

Beachten Sie die Leerzeile am Ende!

‍

3) gitlab-ci.yml muss den COMPOSER_KEY und COMPOSER_CONFIG an der richtigen Stage erhalten. Vergessen Sie nicht, diese dort hinzuzufügen.

‍

‍

Pavel ist ein erfahrener DevOps-Guru und begeisterter SysAdmin, der für Application Life Cycle, Continuous Integration und Continuous Delivery verantwortlich ist, sowohl für Kunden als auch für interne SABO Projekte. Er schult Software-Entwickler in unserem Team und koordiniert alle DevOps-Aktivitäten. Hat immer einen Spruch parat, wechselt unberechenbar ins Polnische und kocht und backt gerne.

Profil anzeigen
SABO Mobile IT logo
SABO Mobile IT – Experience
SABO Mobile IT – Experience
SABO Mobile IT – Experience
SABO Mobile IT – Experience
SABO Mobile IT – Experience

SABO IT

SABO IT entwickelt Individualsoftware für Unternehmen mit komplexen technischen Prozessen, vom Steuergerät über die Cloud bis in die Unternehmenssysteme, auch in regulierten Umgebungen. Dazu kommen eigene Plattformen: SenseDrive für geprüfte Antworten aus dem eigenen Wissensbestand und SABOT für die Sprachbedienung von Maschinen. Softwareentwicklung seit 1983, als SABO IT seit 2012; die durchschnittliche Kundenbeziehung dauert 6,5 Jahre.
Über uns

Weitere Artikel

Artikelbild (Platzhalter)
Recommended for you

Was kostet KI im Unternehmen wirklich? Warum der Preis pro Nutzer die falsche Zahl ist

Drei Meldungen aus diesem Jahr zeigen, warum Rechenleistung für europäische Unternehmen zu einer strategischen Frage wird: Laut Siemens-Vorstand Cedrik Neike liegen europäische Rechenzentren bei den Betriebskosten 20 bis 30 Prozent über dem US-Niveau, zahlen würden Unternehmen dafür nach seiner Einschätzung aber nur 5 bis 10 Prozent mehr.
Guido Stanovsky,  October 29, 2026
Mehr erfahren

Termin buchen

Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.