Buildkonfiguration erstellen, die Quelle aus öffentlichem Repository extrahiert

Wenn sich Ihre Quelle in einem öffentlichen Repository befindet, erstellen Sie eine Build-Konfiguration mit Einstellungen, die Informationen dazu enthalten, wo die Quelle aus einem öffentlichen Repository extrahiert werden soll. Für die Build-Ausgabe können Sie Registrierungsdetails zusammen mit einem Registrierungsgeheimnis angeben, um auf Ihr erstelltes Image in der Registrierung 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 weder ein Registrierungsgeheimnis noch den Speicherort der Bildregistrierung 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.

Buildkonfiguration über die Konsole erstellen (öffentliches 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 öffentlichen Repository befindet, verwenden Sie eine HTTPS-URL und wählen Sie für den Zugriff auf das Code-Repository die Option Keine. Ein Beispiel für eine HTTPS-URL ist https://github.com/IBM/CodeEngine.
    • Wenn sich Ihr Code in einem privaten Repository befindet, verwenden Sie als URL für das Code-Repository eine SSH-URL und wählen Sie entweder den Namen eines vorhandenen Zugriffs für das Code-Repository aus oder erstellen Sie einen Zugriff auf das Code-Repository. 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 den Vorgang fortzusetzen.

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

    • Wählen Sie ein vorhandenes Registrierungsgeheimnis aus, oder klicken Sie auf Registrierungsgeheimnis erstellen, um ein neues hinzuzufügen.
    • Wenn Sie Ihr Image für eine Container Registry erstellen, die sich in Ihrem Konto befindet, können Sie Code Engine managed secret auswählen und Code Engine erstellt und verwaltet das Geheimnis 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 wählen, ob Code Engine den Namespace in Container Registry für Sie erstellen und verwalten soll.
    • 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.

Buildkonfiguration mit der CLI erstellen (öffentliches 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 erstellen und anschließend in IBM Cloud Container Registry speichern soll. Für diesen Fall des automatischen Zugriffs müssen Sie weder ein Registrierungsgeheimnis noch den Speicherort der Bildregistrierung angeben. Oder Sie können den Speicherort für die Ausgabe des Build-Images angeben und ein Registrierungsgeheimnis übermitteln, damit Code Engine auf das Build-Ergebnis zugreifen und es in Ihre Registrierung übertragen kann.

Build-Konfiguration über die Befehlszeilenschnittstelle erstellen (mit öffentlicher Repository-Quelle und automatischem Registry-Zugriff)

In diesem Szenario erstellt Code Engine ein Image aus Ihrer öffentlichen Git-Repository-Quelle und lädt das Image automatisch mit automatischem Zugriff 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

  1. Erstellen Sie eine Buildkonfiguration zum Erstellen eines Image aus einem öffentlichen Git-Repository und lassen Sie Code Engine das Image automatisch speichern und darauf zugreifen. Der folgende build create-Befehl erstellt beispielsweise eine Build-Konfiguration mit dem Namen helloworld-build, die aus der Quelle im öffentlichen Git-Repository https://github.com/IBM/CodeEngine erstellt wird. In diesem Beispiel verwendet der Befehl die Standardstrategie dockerfile und die Standardbuildgröß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, die für dieses Git-Repository main lautet. Ohne Angabe des Speicherorts der Bildregistrierung oder eines Registrierungsgeheimnisses verschiebt Code Engine die Build-Ausgabe nach IBM Cloud Container Registry mit automatischem Zugriff.

    ibmcloud ce build create --name helloworld-build --source https://github.com/IBM/CodeEngine --context-dir /hello
    

    Beispielausgabe

    Creating build helloworld-build...
    OK
    

    Die folgende Tabelle vermittelt Ihnen einen Überblick über die Optionen, die in diesem Beispiel beim Befehl build create verwendet werden. Weitere Informationen zum Befehl und den zugehörigen Optionen finden Sie im Abschnitt über den Befehl ibmcloud ce build create.

    Befehlsbeschreibung
    Option Beschreibung
    --name

    Der Name des Builds. Verwenden Sie einen Namen, der innerhalb des Projekts eindeutig ist. Dieser Wert ist erforderlich.

    • Der Name muss mit einem Kleinbuchstaben beginnen.
    • Der Name muss mit einem alphanumerischen Kleinbuchstaben enden.
      -Der Name darf höchstens 55 Zeichen lang sein und darf Buchstaben, Zahlen und Bindestriche (-) enthalten.
    --source Die URL des Git-Repositorys, in dem der Quellcode enthalten ist; Beispiel: https://github.com/IBM/CodeEngine.
    --context-dir Das Verzeichnis in dem Repository, in dem die Datei mit den Buildpacks oder die Dockerfile enthalten ist. Geben Sie diesen Wert an, wenn die Buildpack-Datei oder die Dockerfile in einem Unterverzeichnis enthalten ist. Dieser Wert ist optional.
  2. Mit dem Befehl build get können Sie den Status Ihres Builds überprüfen.

    ibmcloud ce build get --name helloworld-build
    

    Beispielausgabe

    Beachten Sie den generierten Namen für das Bild und dass der Name des automatisch erstellten Registrierungsgeheimnisses das Format ce-auto-icr-private-<region> hat.

    Getting build 'helloworld-build'
    OK
    
    Name:          helloworld-build  
    ID:            abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f  
    Project Name:  myproject  
    Project ID:    01234567-abcd-abcd-abcd-abcdabcd1111
    Age:           2d15h
    Created:       2022-05-24T09:58:43-05:00  
    Build Type:    git  
    Status:        Succeeded  
    Reason:        all validations succeeded
    
    Image:              private.us.icr.io/ce--e97a8-odof2whblw5/build-helloworld-build
    Registry Secret:    ce-auto-icr-private-us-south  
    Build Strategy:     dockerfile-medium
    Timeout:            10m0s
    Source:             https://github.com/IBM/CodeEngine
    Commit:             main
    Context Directory:  /hello
    Dockerfile:         Dockerfile
    
    

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 Befehlszeilenschnittstelle erstellen (mit öffentlicher Repository-Quelle und vom Benutzer bereitgestellten Registry-Zugriff)

In diesem Szenario erstellt Code Engine ein Image aus der Quelle Ihres öffentlichen Git-Repositorys und lädt das Image anschließend mit dem von Ihnen bereitgestellten Registry-Zugriff in Ihre Container-Registry hoch.

Vorbereitende Schritte

  1. Erstellen Sie eine Build-Konfiguration, um ein Image aus einem öffentlichen Git zu erstellen, und geben Sie den Speicherort der Image-Registry für die Build-Ausgabe mit einem Registry-Secret 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-build2, die aus dem öffentlichen Git-Repository https://github.com/IBM/CodeEngine erstellt und das Image unter Verwendung des geheimen Schlüssels der myregistry-Registry in us.icr.io/mynamespace/codeengine-helloworld speichert. In diesem Beispiel verwendet der Befehl die Standardstrategie dockerfile und die Standardbuildgröß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, die für dieses Git-Repository main lautet.

    Wenn Sie die Option --strategy mit dem Wert dockerfile verwenden, stellen Sie sicher, dass die Option --dockerfile ordnungsgemäß auf den Namen der dockerfile festgelegt ist. Der Standardwert für die Option --strategy lautet Dockerfile.

    ibmcloud ce build create --name helloworld-build2 --image us.icr.io/mynamespace/codeengine-helloworld --registry-secret myregistry --source https://github.com/IBM/CodeEngine --context-dir /hello
    

    Beispielausgabe

    Creating build helloworld-build2...
    OK
    

    Die folgende Tabelle vermittelt Ihnen einen Überblick über die Optionen, die in diesem Beispiel beim Befehl build create verwendet werden. Weitere Informationen zum Befehl und den zugehörigen Optionen finden Sie im Abschnitt über den Befehl ibmcloud ce build create.

    Befehlsbeschreibung
    Option Beschreibung
    --name

    Der Name des Builds. Verwenden Sie einen Namen, der innerhalb des Projekts eindeutig ist. Dieser Wert ist erforderlich.

    • Der Name muss mit einem Kleinbuchstaben beginnen.
    • Der Name muss mit einem alphanumerischen Kleinbuchstaben enden.
      -Der Name darf höchstens 55 Zeichen lang sein und darf Buchstaben, Zahlen und Bindestriche (-) enthalten.
    --image Die Position der Image-Registry. Die Position muss im Format REGISTRY/NAMESPACE/REPOSITORY oder REGISTRY/NAMESPACE/REPOSITORY:TAG angegeben sein, wobei die Angabe von TAG optional ist. Wird TAG nicht angegeben, ist latest der Standardwert.
    --registry-secret Das Registrierungsgeheimnis, das für den Zugriff auf die Registrierung verwendet wird. Sie können den geheimen Registry-Schlüssel hinzufügen, indem Sie den Befehl secret create --format registry ausführen. Das Registrierungsgeheimnis wird für die Authentifizierung bei einer privaten Registrierung verwendet.
    --source Die URL des Git-Repositorys, in dem der Quellcode enthalten ist; Beispiel: https://github.com/IBM/CodeEngine.
    --context-dir Das Verzeichnis in dem Repository, in dem die Datei mit den Buildpacks oder die Dockerfile enthalten ist. Geben Sie diesen Wert an, wenn die Buildpack-Datei oder die Dockerfile in einem Unterverzeichnis enthalten ist. Dieser Wert ist optional.
  2. Mit dem Befehl build get können Sie den Status Ihres Builds überprüfen.

    ibmcloud ce build get --name helloworld-build2
    

    Beispielausgabe

    Getting build 'helloworld-build2'
    OK
    
    Name:          helloworld-build2  
    ID:            abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f  
    Project Name:  myproject  
    Project ID:    01234567-abcd-abcd-abcd-abcdabcd1111
    Age:           2d15h
    Created:       2021-03-14T14:48:19-05:00  
    Status:        Succeeded  
    Reason:        all validations succeeded
    
    Image:              us.icr.io/mynamespace/codeengine-helloworld
    Registry Secret:    myregistry
    Build Strategy:     dockerfile-medium
    Timeout:            10m0s
    Source:             https://github.com/IBM/CodeEngine
    Commit:             main
    Context Directory:  /hello
    Dockerfile:         Dockerfile
    
    

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.

Wenn Sie für den Befehl einen Fehler bei der Gültigkeitsprüfung empfangen, überprüfen Sie, ob Ihr geheimer Schlüssel vorhanden ist. Wenn Sie sich auf ein Registrierungsgeheimnis --registry-secret) für Ihr Image beziehen und das Geheimnis nicht existiert, lesen Sie den Abschnitt Zugriff auf Container-Registrierungen. Weitere Informationen zu Builds finden Sie unter Tipps zur Fehlerbehebung.