Build-Konfiguration erstellen, die die Quelle aus privatem Repository extrahiert

Wenn sich Ihre Quelle in einem privaten Repository befindet, erstellen Sie eine Build-Konfiguration mit Einstellungen, die Informationen dazu enthalten, wo die Quelle aus einem privaten Repository extrahiert werden soll. Für die Buildausgabe können Sie Registry-Details zusammen mit einem geheimen Registry-Schlüssel angeben, um auf Ihr erstelltes Image in der Registry zuzugreifen. Sie können auch festlegen, dass Code Engine das Image für Sie aus Ihrer Quelle erstellen und in IBM Cloud Container Registry speichern soll. In diesem Fall müssen Sie keinen geheimen Registry-Schlüssel oder die Position der Image-Registry angeben.

Das Erstellen einer Buildkonfiguration dient nicht zur Erstellung eines Image, sondern erstellt die Konfiguration für den Build eines Image. Zur Erstellung eines Images müssen Sie anschließend einen Build ausführen, der die Buildkonfiguration referenziert. Die Buildkonfiguration wird erst bei der Ausführung des Builds validiert oder zum Erstellen eines Images verwendet. Mit der Buildkonfiguration können nacheinander mehrere Builds für ein Image ausgeführt werden, beispielsweise nach dem Anwenden von Änderungen auf das Quellenrepository.

Sie können bestimmte Dateimuster aus Ihrem Quellcode ignorieren, indem Sie die Datei .ceignore verwenden, die sich ähnlich wie eine .gitignore-Datei verhält. Einträge für eine .ceignore-Datei bezüglich einer Node.js-Anwendung können beispielsweise node_modules und .npm enthalten. Weitere Beispiele für zu ignorierende Dateimuster finden Sie im GitHub.gitignore-Repository.

Buildkonfiguration über die Konsole erstellen (privates Repository)

  1. Rufen Sie das Code Engine-Dashboard auf.

  2. Wählen Sie das Projekt aus, in dem Sie das Container-Registry hinzugefügt haben.

  3. Klicken Sie auf der Projektseite auf Image-Builds.

  4. Klicken Sie auf der Registerkarte Image-Build auf Create. Die Seitenanzeige Builddetails angeben wird geöffnet; auf ihr geben Sie die Details zum Build ein.

  5. Geben Sie im Abschnitt Quelle einen Namen für Ihren Build, die URL Ihres Quellcode-Repositorys und Ihren Code-Repository-Zugang ein.

    • Wenn sich Ihr Code in einem privaten Repository befindet, verwenden Sie eine SSH-URL für die Code-Repository-URL und wählen Sie entweder den Namen eines vorhandenen geheimen SSH-Schlüssels aus oder erstellen Sie einen geheimen SSH-Schlüssel. Ein Beispiel für eine SSH-URL ist git@github.com:IBM/CodeEngine.git.
    • Wählen Sie optional einen Namen für die Quellenverzweigung aus. Wenn Sie keinen Verzweigungsnamen angeben und das Feld leer lassen, verwendet Code Engine automatisch die Standardverzweigung des angegebenen Repositorys. Sie können einen anderen Zweignamen, einen anderen Tag oder eine andere Commit-ID eingeben.

    Klicken Sie auf Weiter, um den Vorgang fortzusetzen.

  6. Wählen Sie im Abschnitt Strategie die Strategie aus, die Sie verwenden möchten.

    • Wenn Sie Dockerfile auswählen, können Sie auch einen alternativen Pfad für Ihre Dockerfile angeben.
    • Wählen Sie unter Buildressourcen die Größe Ihres Builds aus.

    Klicken Sie auf Weiter, um zum letzten Abschnitt zu wechseln.

  7. Geben Sie im Abschnitt Ausgabe die Details Ihres Container-Image ein.

    • Wählen Sie einen vorhandenen geheimen Registry-Schlüssel aus oder klicken Sie auf Geheimen Registry-Schlüssel erstellen, um einen neuen hinzuzufügen.
    • Wenn Sie Ihr Image in einer Container Registry-Instanz erstellen, die sich in Ihrem Konto befindet, können Sie Code Engine managed secret auswählen und Code Engine erstellt und verwaltet den geheimen Schlüssel für Sie.
    • Wählen Sie anschließend den Namensbereich, das Repository und das Tag des Images aus, das Sie erstellen möchten. Sie können auswählen, dass Code Engine den Namensbereich in Container Registry für Sie erstellt und verwaltet.
    • Wenn Ihr Image in Container Registry vorhanden ist, können Sie aus den vorhandenen Images auswählen oder ein neues Repository oder einen neuen Tag eingeben.
  8. Klicken Sie auf Fertig, um die Erstellung des Builds zu beenden.

Nach der Erstellung der Buildkonfiguration müssen Sie den Build ausführen, um die Imagedatei zu erstellen. Nach der Erstellung der Imagedatei können Sie eine App bereitstellen oder einen Job ausführen mit Ihrer neu erstellten Imagedatei.

Build-Konfiguration mit der Befehlszeilenschnittstelle erstellen (privates Repository)

Mit dem Befehl build create können Sie eine Buildkonfiguration in der Befehlszeilenschnittstelle erstellen. Eine umfassende Liste der Optionen finden Sie im Abschnitt über den Befehl ibmcloud ce build create.

Mit dem Befehl build create können Sie auswählen, dass Code Engine das Image aus Ihrer Quelle für Sie erstellen und in IBM Cloud Container Registry speichern soll. Bei diesem automatischen Zugriff müssen Sie keinen geheimen Registry-Schlüssel oder die Position der Image-Registry angeben. Sie können auch die Position für die Ausgabe Ihres Build-Image angeben und einen geheimen Schlüssel für die Registry bereitstellen, damit Code Engine auf das Buildergebnis zugreifen und es mit Push-Operation an Ihre Registry übertragen kann.

Build-Konfiguration mit der Befehlszeilenschnittstelle erstellen (mit privater Repository-Quelle und automatischem Registry-Zugriff)

In diesem Szenario erstellt Code Engine ein Image aus Ihrer privaten Repository-Quelle und lädt das Image automatisch in IBM Cloud Container Registry hoch. Weitere Informationen zum Festlegen der erforderlichen Berechtigungen für Code Engine für den automatischen Zugriff auf diese Images in Container Registry finden Sie unter Berechtigungen für Image-Registrys einrichten.

Vorbereitende Schritte

Erstellen Sie eine Build-Konfiguration, um ein Image aus einem privaten Repository zu erstellen, sodass Code Engine das Image automatisch speichern und darauf zugreifen kann. Der folgende build create-Befehl erstellt beispielsweise eine Build-Konfiguration mit dem Namen helloworld-build-private, die aus dem privaten Git-Repository https://github.com/myprivaterepo/buildserstellt wird, und verwendet die Strategie buildpacks und die Buildgröße medium. Code Engine lädt das Image automatisch in IBM Cloud Container Registry hoch. Da der Verzweigungsname des Repositorys nicht mit der Option --commit angegeben wird, verwendet Code Engine automatisch die Standardverzweigung des angegebenen Repository, die für dieses Git-Repository main lautet. Wenn Sie die Position der Image-Registry oder eines geheimen Registry-Schlüssels nicht angeben, überträgt Code Engine die Buildausgabe mit einer Push-Operation mit automatischem Zugriff an IBM Cloud Container Registry.

Da das angegebene Git-Repository privat ist, wird für den Zugriff ein geheimer Git-Repositoryschlüssel benötigt. Daher muss die von Ihnen mit --source angegebene Quelle das SSH-Protokoll verwenden, z. B. git@github.com:myprivaterepo/builds.git. Der Wert für --source darf nicht das Format mit http oder https verwenden.

ibmcloud ce build create --name helloworld-build-private --source git@github.com:myprivaterepo/builds.git --context-dir /hello --strategy buildpacks --git-repo-secret myrepo

Nach der Erstellung der Buildkonfiguration müssen Sie den Build ausführen, um die Imagedatei zu erstellen. Nach der Erstellung der Imagedatei können Sie eine App bereitstellen oder einen Job ausführen mit Ihrer neu erstellten Imagedatei.

Build-Konfiguration über die CLI erstellen (mit privater Repository-Quelle und benutzereigenem Registry-Zugriff)

In diesem Szenario erstellt Code Engine ein Image aus Ihrer privaten Repository-Quelle mit einem geheimen Git-Repository-Schlüssel, den Sie angeben, und lädt dann das Image mit dem von Ihnen bereitgestellten Registry-Zugriff in Ihre Container-Registry hoch.

Vorbereitende Schritte

Erstellen Sie eine Buildkonfiguration, um ein Image aus einem privaten Repository zu erstellen, und geben Sie die Position der Image-Registry für die Buildausgabe mit einem geheimen Registry-Schlüssel an. Geben Sie mit dem Befehl build create die Option --image an, um die Position der Image-Registry anzugeben, und geben Sie die Option --registry-secret an, um auf die Registry zuzugreifen. Der folgende Befehl erstellt beispielsweise eine Buildkonfiguration mit dem Namen helloworld-build-private, die aus dem privaten Git-Repository https://github.com/myprivaterepo/builds erstellt, die Strategie buildpacks und die Buildgröße medium verwendet und das Image unter Verwendung des geheimen Registry-Schlüssels, der in myregistry definiert ist, in us.icr.io/mynamespace/codeengine-helloworld speichert.

Da das angegebene Git-Repository privat ist, wird für den Zugriff ein geheimer Git-Repositoryschlüssel benötigt. Daher muss die von Ihnen mit --source angegebene Quelle das SSH-Protokoll verwenden, z. B. git@github.com:myprivaterepo/builds.git. Der Wert für --source darf nicht das Format mit http oder https verwenden.

In diesem Beispiel verwendet der Befehl die Standard-Buildgröße medium. Da der Name der Verzweigung des Repositorys nicht mit der Option --commit angegeben wird, verwendet Code Engine automatisch die Standardverzweigung des angegebenen Repositorys.

ibmcloud ce build create --name helloworld-build-private --image us.icr.io/mynamespace/codeengine-helloworld --registry-secret myregistry --source git@github.com:myprivaterepo/builds.git --context-dir /hello --strategy buildpacks --git-repo-secret myrepo

Nach der Erstellung der Buildkonfiguration müssen Sie den Build ausführen, um die Imagedatei zu erstellen. Nach der Erstellung der Imagedatei können Sie eine App bereitstellen oder einen Job ausführen mit Ihrer neu erstellten Imagedatei.