IBM Cloud Docs
Container-Image mit eigenständigen Build-Befehlen (CLI) erstellen

Container-Image mit eigenständigen Build-Befehlen (CLI) erstellen

Wenn Ihr Code als Quellcode in einer lokalen Datei oder in einem Git vorhanden ist, bietet Code Engine Ihnen die Möglichkeit, Ihren Code als Container-Image nach dem Standard der Open Container Initiative(OCI) zu erstellen. Mit der Code Engine-CLI können Sie ein Container-Image mit einem einzelnen Befehl erstellen.

Code Engine bietet die Flexibilität, den Erstellungsprozess für Sie auszuführen, wenn Sie Ihre App aus Repository-Quellcode bereitstellen, Ihre App aus lokalem Quellcode über die Befehlszeilenschnittstelle bereitstellen, einen Job aus Repository-Quellcode erstellen oder einen Job aus lokalem Quellcode über die Befehlszeilenschnittstelle erstellen.

Wenn Sie jedoch mehr Kontrolle über die Erstellung Ihres Container-Image wünschen, bietet Ihnen Code Engine die Flexibilität, Ihr Container-Image zu erstellen, indem Sie eine der folgenden Optionen verwenden:

  • Verwenden Sie einen einzelnen CLI-Befehl buildrun submit, um eine Build-Ausführung auszuführen. Der Vorteil dieser Option besteht darin, dass Sie Ihren Build mit einem einzigen CLI-Befehl abrufen können. Die Konfiguration für den Build wird jedoch nicht beibehalten.
  • Definieren Sie eine Build-Konfiguration, von der aus Sie mehrere Build-Ausführungen durchführen können. Siehe Container-Image mithilfe einer Build-Konfiguration erstellen.

Nachdem Ihr Build abgeschlossen wurde und Ihr Image vorhanden ist, können Sie das Container-Image als Anwendung bereitstellen oder einen Job erstellen, der auf Ihr Image verweist.

Lernen Sie, wie Sie Ihr Container-Image mit einem einzigen Befehl erstellen und nicht auf eine Buildkonfiguration verweisen. In diesem Szenario extrahiert IBM Cloud® Code Engine Quellcode aus einem Git-Repository oder einem lokalen Verzeichnis, erstellt einen Build und überträgt das Container-Image in eine Registry (Upload). Sie können öffentliche oder private Repositorys und Registrys auswählen. Sie können die Registrierungsdetails mit einem Registrierungsgeheimnis für Ihre Build-Ausgabe mit benutzerdefiniertem Zugriff angeben. Alternativ können Sie es Code Engine überlassen, das Image aus Ihrer Quelle für Sie zu erstellen und in IBM Cloud Container Registry mit der Option Automatischer Zugriff zu speichern.

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.

Beachten Sie die folgenden Punkte, bevor Sie Ihr Container-Image erstellen:

  • Überprüfen Sie vor dem Erstellen der Images die Planungsinformationen. Außerdem müssen Sie überprüfen, ob Sie auf die Registry zugreifen können. Weitere Informationen finden Sie unter Berechtigungen für Container-Registrys einrichten.

  • Wenn Sie mehrere Versionen desselben Container-Images erstellen, wird die neueste Version des Container-Images heruntergeladen und verwendet, wenn Sie Ihren Job ausführen oder Ihre Anwendung implementieren, sofern kein Tag für das Image angegeben ist. Wenn ein Tag für das Image angegeben wird, dann wird das mit Tags versehene Image für die Anwendung oder den Job verwendet.

  • Über die CLI übermittelte Build-Läufe, die nicht auf eine definierte Build-Konfiguration verweisen, können ebenfalls über die Konsole angezeigt werden. Klicken Sie auf der Projektseite auf Image-Builds, um die Liste der Image-Builds und Buildausführungen anzuzeigen. Verwenden Sie in der Befehlszeilenschnittstelle den Befehl ibmcloud ce buildrun list, um eine Liste aller Buildausführungen in einem Projekt anzuzeigen.

  • Code Engine verfügt über Kontingente für Build-Ausführungen innerhalb eines Projekts. Weitere Informationen zu Code Engine-Grenzwerte finden Sie unter Grenzwerte und Kontingente für Code Engine.

Buildausführungen, die abgeschlossen werden, werden letztendlich automatisch gelöscht. Wenn Sie eine Buildausführung mit einem einzelnen CLI-Befehl ausführen, sodass sie nicht auf einer Buildkonfiguration basiert, wird diese Buildausführung nach 1 Stunde gelöscht, wenn die Buildausführung erfolgreich ist. Wenn die Buildausführung nicht erfolgreich ist, wird sie nach 24 Stunden gelöscht. Sie können Informationen zu dieser Buildausführung nur mit der Befehlszeilenschnittstelle anzeigen. Sie können diese Buildausführung nicht in der Konsole anzeigen.

Einzelnen Build ausführen, der eine Quelle aus öffentlichem Repository über die Befehlszeilenschnittstelle extrahiert

Wenn sich Ihre Quelle in einem öffentlichen Repository befindet und Sie einen einzelnen Befehl zum Erstellen und zur Ausgabe eines Container-Image verwenden möchten, erstellen Sie das Container-Image mit dem Befehl buildrun submit, ohne eine wiederverwendbare Build-Konfiguration zu erstellen.

Für die Buildausgabe können Sie Automatischer Zugriff auswählen und es Code Engine überlassen, das Image aus Ihrer Quelle zu erstellen und in IBM Cloud Container Registry zu speichern. In diesem Fall müssen Sie weder ein Registrierungsgeheimnis noch den Speicherort der Bildregistrierung angeben. Sie können auch den benutzerdefinierten Zugriff wählen und Registrierungsdetails zusammen mit einem Registrierungsgeheimnis angeben, um auf Ihr erstelltes Image in der Registrierung zuzugreifen.

Eine vollständige Liste der Optionen für die Ausführung eines einzelnen Builds finden Sie unter dem Befehl ibmcloud ce buildrun submit.

Einzelnen Build über die CLI ausführen (mit öffentlicher Repository-Quelle und automatischem Registry-Zugriff)

In diesem Szenario mit Automatischem Zugriff erstellt Code Engine ein Image aus Ihrer öffentlichen Git-Repository-Quelle und lädt das Image mithilfe von Build-Optionen mit dem Befehl buildrun submit automatisch in IBM Cloud Container Registry hoch. In diesem Fall müssen Sie weder ein Registrierungsgeheimnis noch den Speicherort der Bildregistrierung angeben.

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. Führen Sie einen Build aus, um ein Image aus einem öffentlichen Git-Repository zu erstellen und lassen Sie Code Engine das Image automatisch speichern und darauf zugreifen. Der folgende buildrun submit-Befehl führt beispielsweise eine Build-Ausführung mit dem Namen helloworld-buildrun aus, die aus der Quelle im öffentlichen Git-Repository https://github.com/IBM/CodeEngine erstellt wird.

    ibmcloud ce buildrun submit --name helloworld-buildrun --source https://github.com/IBM/CodeEngine --context-dir /hello
    
    • 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.
    • Code Engine ermittelt anhand des Werts der Option --source automatisch, ob sich Ihre Quelle in einem Repository oder auf einer lokalen Workstation befindet.

    Beispielausgabe

    Submitting build run 'helloworld-buildrun'...
    Creating image 'private.us.icr.io/ce--12ce3-defg4h5ij6d/buildrun-helloworld-buildrun'...
    Run 'ibmcloud ce buildrun get -n helloworld-buildrun' to check the build run status.
    OK
    

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

    Befehlsbeschreibung
    Option Beschreibung
    --name

    Der Name der Buildausführung. Verwenden Sie einen Namen, der innerhalb des Projekts eindeutig ist.

    • Der Name muss mit einem Kleinbuchstaben beginnen und enden.
    • Der Name darf maximal 63 Zeichen lang sein und alphanumerische Kleinbuchstaben sowie Bindestriche (-) enthalten.
    --source Die URL des Git-Repositorys oder der Pfad zu der lokalen Quelle, die Ihren Quellcode enthält, z. B. 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.
  2. Verwenden Sie den Befehl buildrun get, um den Status Ihrer Build-Ausführung zu überprüfen.

    ibmcloud ce buildrun get -n helloworld-buildrun
    

    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-buildrun'
    For troubleshooting information visit: https://cloud.ibm.com/docs/codeengine?topic=codeengine-troubleshoot-build.
    Run 'ibmcloud ce buildrun events -n helloworld-buildrun' to get the system events of the build run.
    Run 'ibmcloud ce buildrun logs -f -n helloworld-buildrun' to follow the logs of the build run.
    OK
    
    Name:          helloworld-buildrun  
    ID:            abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f  
    Project Name:  myproject  
    Project ID:    01234567-abcd-abcd-abcd-abcdabcd1111
    Age:           2d15h
    Created:       2022-06-07T15:30:46-04:00  
    Build Type:    git
    
    Summary:       Succeeded
    Status:        Succeeded
    Reason:        All Steps have completed executing
    Source:
        Commit Branch:  main
        Commit SHA:     946dd18f6e5a5474336786bc28d7dda93aec49c1
        Commit Author:  COMMIT_AUTHOR
    Image Digest:  sha256:ba3c445a27238040e102c083f76ad8922effcc3a7c4dc97b8472e626d87c11a2
    
    Image:              private.us.icr.io/ce--12ce3-defg4h5ij6d/buildrun-helloworld-buildrun
    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
    

Einzelnen Build über die CLI ausführen (mit öffentlicher Repository-Quelle und vom Benutzer bereitgestelltem Registry-Zugriff)

In diesem Szenario mit vom Benutzer bereitgestellten Zugriff erstellt Code Engine ein Image aus Ihrer öffentlichen Git-Repository-Quelle und lädt dann das Image in Ihre Container-Registry mit dem Registry-Zugriff hoch, den Sie mit einem einzigen Buildbefehl bereitstellen.

Vorbereitende Schritte

  1. Führen Sie einen Build aus, 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. Der folgende buildrun submit-Befehl führt beispielsweise eine Buildausführung mit dem Namen helloworld-buildrun2 aus, die aus dem öffentlichen Git Repository https://github.com/IBM/CodeEngine erstellt und das Image in der us.icr.io/mynamespace/codeengine-helloworld-Registry speichert, indem er den geheimen Schlüssel der myregistry-Registry für den Zugriff auf diese Registry verwendet.

    ibmcloud ce buildrun submit --name helloworld-buildrun2 --image us.icr.io/mynamespace/codeengine-helloworld --registry-secret myregistry --source https://github.com/IBM/CodeEngine --context-dir /hello
    
    • 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.
    • Code Engine ermittelt anhand des Werts der Option --source automatisch, ob sich Ihre Quelle in einem Repository oder auf einer lokalen Workstation befindet.

    Beispielausgabe

    Submitting build run 'helloworld-buildrun2'...
    Creating image 'us.icr.io/mynamespace/codeengine-helloworld'...
    Run 'ibmcloud ce buildrun get -n helloworld-buildrun2' to check the build run status.
    OK
    

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

    Befehlsbeschreibung
    Option Beschreibung
    --name

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

    • Der Name muss mit einem Kleinbuchstaben beginnen und enden.
    • Der Name darf maximal 63 Zeichen umfassen und muss alphanumerische Zeichen in Kleinschreibung sowie 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, wenn Sie das Container-Image erstellen. Führen Sie den Befehl secret create --format registry aus, um einen geheimen Registry-Schlüssel zu erstellen. Das Registrierungsgeheimnis wird für die Authentifizierung bei einer privaten Registrierung verwendet.
    --source Die URL des Git-Repositorys oder der Pfad zu der lokalen Quelle, die Ihren Quellcode enthält, z. B. 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.
  2. Verwenden Sie den Befehl buildrun get, um den Status Ihrer Build-Ausführung zu überprüfen.

    ibmcloud ce buildrun get --name helloworld-buildrun2
    

    Beispielausgabe

    Getting build run 'helloworld-buildrun2'...
    For troubleshooting information visit: https://cloud.ibm.com/docs/codeengine?topic=codeengine-troubleshoot-build.
    Run 'C:\Program Files\IBM\Cloud\bin\ibmcloud.exe ce buildrun events -n helloworld-buildrun2' to get the system events of the build run.
    Run 'C:\Program Files\IBM\Cloud\bin\ibmcloud.exe ce buildrun logs -f -n helloworld-buildrun2' to follow the logs of the build run.
    OK
    
    Name:          helloworld-buildrun2  
    ID:            abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f  
    Project Name:  myproject  
    Project ID:    01234567-abcd-abcd-abcd-abcdabcd1111
    Age:           2d15h
    Created:       2022-06-07T15:57:43-04:00
    Build Type:    git
    
    Summary:       Succeeded
    Status:        Succeeded
    Reason:        All Steps have completed executing
    Source:
        Commit Branch:  main
        Commit SHA:     946dd18f6e5a5474336786bc28d7dda93aec49c1
        Commit Author:  COMMIT_AUTHOR
    Image Digest:  sha256:6312ee613efa5bec7baa20c47f607e7f15473947d5675fd7384491bee8023afc
    
    Image:              us.icr.io/mynamespace/codeengine-helloworld2
    Registry Secret:    myregistry
    Build Strategy:     dockerfile-medium
    Timeout:            10m0s
    Source:             https://github.com/IBM/CodeEngine
    Context Directory:  /hello
    Dockerfile:         Dockerfile
    

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 auf einen geheimen Registry-Schlüssel (--registry-secret) für Ihr Image verweisen und der geheime Schlüssel nicht vorhanden ist, lesen Sie den Abschnitt Auf Container-Registrys zugreifen. Weitere Informationen zu Builds finden Sie unter Tipps zur Fehlerbehebung.

Einzelnen Build ausführen, der eine Quelle aus privatem Repository über die Befehlszeilenschnittstelle extrahiert

Wenn sich Ihre Quelle in einem privaten Repository befindet und Sie einen einzelnen Befehl zum Erstellen und zur Ausgabe eines Container-Image verwenden möchten, erstellen Sie das Container-Image mit dem Befehl buildrun submit, ohne eine wiederverwendbare Build-Konfiguration zu erstellen.

Für die Buildausgabe können Sie Automatischer Zugriff auswählen und es Code Engine überlassen, das Image aus Ihrer Quelle zu erstellen und in IBM Cloud Container Registry zu speichern. In diesem Fall müssen Sie weder ein Registrierungsgeheimnis noch den Speicherort der Bildregistrierung angeben. Sie können auch den benutzerdefinierten Zugriff wählen und Registrierungsdetails zusammen mit einem Registrierungsgeheimnis angeben, um auf Ihr erstelltes Image in der Registrierung zuzugreifen.

Eine vollständige Liste der Optionen für die Ausführung eines einzelnen Builds finden Sie unter dem Befehl ibmcloud ce buildrun submit.

Einzelnen Build mit der Befehlszeilenschnittstelle ausführen (mit privater Repository-Quelle und automatischem Registry-Zugriff)

In diesem Szenario mit Automatischem Zugriff erstellt Code Engine ein Image aus Ihrer privaten Repository-Quelle und lädt das Image mit automatischem Zugriff mithilfe von Build-Optionen mit dem Befehl buildrun submit in IBM Cloud Container Registry hoch. In diesem Fall müssen Sie weder ein Registrierungsgeheimnis noch den Speicherort der Bildregistrierung angeben.

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. Führen Sie einen Build aus, um ein Image aus einem privaten Repository zu erstellen, sodass Code Engine das Image automatisch speichern und darauf zugreifen kann. Der folgende buildrun submit-Befehl führt beispielsweise eine Build-Ausführung mit dem Namen helloworld-buildrun-private aus, die aus dem privaten Git-Repository https://github.com/myprivaterepo/buildserstellt wird.

    ibmcloud ce buildrun submit --name helloworld-buildrun-private --source git@github.com:myprivaterepo/builds.git --context-dir /hello --strategy buildpacks --git-repo-secret myrepossh
    
    • Dieser Beispielbefehl verwendet die Strategie buildpacks und die Buildgröße medium.
    • Ohne Angabe des Speicherorts der Bildregistrierung oder eines Registrierungsgeheimnisses verschiebt Code Engine die Build-Ausgabe nach IBM Cloud Container Registry mit automatischem Zugriff.
    • Da der Quellcode im angegebenen Git privat ist, ist für den Zugriff ein SSH-Geheimnis erforderlich. Ein geheimer SSH-Schlüssel wird auch als geheimer Repositoryzugriffsschlüssel für Git verwendet. 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.
    • Da der Name der Verzweigung des Repositorys nicht mit der Option --commit angegeben wird, verwendet Code Engine automatisch die Standardverzweigung des angegebenen Repositorys.
    • Code Engine ermittelt anhand des Werts der Option --source automatisch, ob sich Ihre Quelle in einem Repository oder auf einer lokalen Workstation befindet.

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

    Befehlsbeschreibung
    Option Beschreibung
    --name

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

    • Der Name muss mit einem Kleinbuchstaben beginnen und enden.
    • Der Name darf maximal 63 Zeichen umfassen und muss alphanumerische Zeichen in Kleinschreibung sowie Bindestriche (-) enthalten.
    --source Die URL des Git-Repositorys oder der Pfad zu der lokalen Quelle, die Ihren Quellcode enthält, z. B. git@github.com:myprivaterepo/builds.git.
    --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.
    --strategy Die Strategie, die für die Erstellung des Images verwendet werden soll. Gültige Werte sind dockerfile und buildpacks.
    --git-repo-secret Der Name des geheimen SSH-Schlüssels, der die Berechtigungsnachweise für den Zugriff auf das private Repository enthält, das den Quellcode zum Erstellen Ihres Container-Image enthält. Führen Sie den Befehl secret create --ssh aus, um diesen geheimen Schlüssel zu erstellen. Ein geheimer SSH-Schlüssel wird auch als geheimer Repositoryzugriffsschlüssel für Git verwendet.
  2. Verwenden Sie den Befehl buildrun get, um den Status Ihrer Build-Ausführung zu überprüfen.

    ibmcloud ce buildrun get --name helloworld-buildrun-private
    

    Beispielausgabe

    Getting build run 'helloworld-buildrun-private'...
    For troubleshooting information visit: https://cloud.ibm.com/docs/codeengine?topic=codeengine-troubleshoot-build.
    Run 'ibmcloud ce buildrun events -n helloworld-buildrun-private' to get the system events of the build run.
    Run 'ibmcloud ce buildrun logs -f -n helloworld-buildrun-private' to follow the logs of the build run.
    OK
    
    Name:          helloworld-buildrun-private  
    ID:            abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f  
    Project Name:  myproject  
    Project ID:    01234567-abcd-abcd-abcd-abcdabcd1111
    Age:           2d15h
    Created:       2022-06-08T06:02:36-05:00  
    Build Type:    git  
    
    Summary:       Succeeded  
    Status:        Succeeded  
    Reason:        All Steps have completed executing   
    Source:          
        Commit Branch:  main  
        Commit SHA:     946dd18f6e5a5474336786bc28d7dda93aec49c1  
        Commit Author:  COMMIT_AUTHOR  
    Image Digest:  sha256:39c4a87bc43102c2ee88562072c57c135b8dcc5cc4a1104e1d782fe3acc5d5b6  
    Image:              private.us.icr.io/ce--e97a8-odof2whblw5/build-helloworld-buildrun-private
    Registry Secret:    ce-auto-icr-private-us-south  
    Build Strategy:     buildpacks-v3-medium
    Timeout:            10m0s
    Source:             git@github.com:myprivaterepo/builds.git  
    Context Directory:  /hello  
    Repo Secret:        myrepossh
    

Einzelnen Build über die CLI ausführen (mit privater Repository-Quelle und vom Benutzer bereitgestelltem Registry-Zugriff)

In diesem Szenario mit vom Benutzer bereitgestelltem Zugriff erstellt Code Engine ein Image aus Ihrer privaten Repository-Quelle mit einem geheimen Git-Repository-Schlüssel, den Sie angeben, und lädt das Image anschließend mit dem Registry-Zugriff, den Sie mit einem einzigen Buildbefehl bereitstellen, in Ihre Container-Registry hoch.

Vorbereitende Schritte

  1. Führen Sie einen Build aus, um ein Image aus einem privaten Repository zu erstellen, und geben Sie den Speicherort der Image-Registry für die Build-Ausgabe mit einem Registry-Secret an. Der folgende Beispielbefehl buildrun submit führt eine Buildausführung mit dem Namen helloworld-buildrun-private2 aus, die aus dem privaten Git-Repository https://github.com/myprivaterepo/builds erstellt wird, und speichert das Image in us.icr.io/mynamespace/codeengine-helloworld, indem der geheime Schlüssel der myregistry-Registry für den Zugriff auf diese Registry verwendet wird.

    ibmcloud ce buildrun submit --name helloworld-buildrun-private2 --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 myrepossh
    
    • Dieser Beispielbefehl verwendet die Strategie buildpacks und die Standardbuildgröße medium.
    • Da das bereitgestellte Git privat ist, ist für den Zugriff ein SSH-Geheimnis erforderlich. Ein geheimer SSH-Schlüssel wird auch als geheimer Repositoryzugriffsschlüssel für Git verwendet. 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.
    • Da der Name der Verzweigung des Repositorys nicht mit der Option --commit angegeben wird, verwendet Code Engine automatisch die Standardverzweigung des angegebenen Repositorys.
    • Code Engine ermittelt anhand des Werts der Option --source automatisch, ob sich Ihre Quelle in einem Repository oder auf einer lokalen Workstation befindet.

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

    Befehlsbeschreibung
    Option Beschreibung
    --name

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

    • Der Name muss mit einem Kleinbuchstaben beginnen und enden.
    • Der Name darf maximal 63 Zeichen umfassen und muss alphanumerische Zeichen in Kleinschreibung sowie 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, wenn Sie das Container-Image erstellen. Führen Sie den Befehl secret create --format registry aus, um einen geheimen Registry-Schlüssel zu erstellen. Das Registrierungsgeheimnis wird für die Authentifizierung bei einer privaten Registrierung verwendet.
    --source Die URL des Git-Repositorys oder der Pfad zu der lokalen Quelle, die Ihren Quellcode enthält, z. B. git@github.com:myprivaterepo/builds.git.
    --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.
    --strategy Die Strategie, die für die Erstellung des Images verwendet werden soll. Gültige Werte sind dockerfile und buildpacks.
    --git-repo-secret Der Name des geheimen SSH-Schlüssels, der die Berechtigungsnachweise für den Zugriff auf das private Repository enthält, das den Quellcode zum Erstellen Ihres Container-Image enthält. Führen Sie den Befehl secret create --ssh aus, um diesen geheimen Schlüssel zu erstellen. Ein geheimer SSH-Schlüssel wird auch als geheimer Repositoryzugriffsschlüssel für Git verwendet.
  2. Verwenden Sie den Befehl buildrun get, um den Status Ihrer Build-Ausführung zu überprüfen.

    ibmcloud ce buildrun get --name helloworld-buildrun-private2
    

    Beispielausgabe

    Getting build run 'helloworld-buildrun-private2'...
    For troubleshooting information visit: https://cloud.ibm.com/docs/codeengine?topic=codeengine-troubleshoot-build.
    Run 'ibmcloud ce buildrun events -n helloworld-buildrun-private2' to get the system events of the build run.
    Run 'ibmcloud ce buildrun logs -f -n helloworld-buildrun-private2' to follow the logs of the build run.
    OK
    
    Name:          helloworld-buildrun-private2  
    ID:            abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f  
    Project Name:  myproject  
    Project ID:    01234567-abcd-abcd-abcd-abcdabcd1111
    Age:           2d10h
    Created:       2022-06-08T06:11:05-05:00  
    Build Type:    git  
    
    Summary:       Succeeded  
    Status:        Succeeded  
    Reason:        All Steps have completed executing  
    Source:          
        Commit Branch:  main  
        Commit SHA:     946dd18f6e5a5474336786bc28d7dda93aec49c1  
        Commit Author:  COMMIT_AUTHOR  
    Image Digest:  sha256:39c4a87bc43102c2ee88562072c57c135b8dcc5cc4a1104e1d782fe3acc5d5b6  
    
    Image:              us.icr.io/mynamespace/codeengine-helloworld  
    Registry Secret:    myregistry  
    Build Strategy:     buildpacks-v3-medium  
    Timeout:            10m0s  
    Source:             git@github.com:myprivaterepo/builds.git  
    Context Directory:  /hello  
    Repo Secret:        myrepossh
    

Einzelnen Build ausführen, der eine Quelle aus einem lokalen Verzeichnis extrahiert

Wenn sich Ihre Quelle auf Ihrer lokalen Workstation befindet und Sie einen einzelnen Befehl verwenden möchten, um ein Container-Image zu erstellen und auszugeben, verwenden Sie den Befehl buildrun submit, um das Container-Image zu erstellen, ohne eine wiederverwendbare Build-Konfiguration zu erstellen.

Für die Buildausgabe können Sie Automatischer Zugriff auswählen und es Code Engine überlassen, das Image aus Ihrer Quelle zu erstellen und in IBM Cloud Container Registry zu speichern. In diesem Fall müssen Sie weder ein Registrierungsgeheimnis noch den Speicherort der Bildregistrierung angeben. Sie können auch den benutzerdefinierten Zugriff wählen und Registrierungsdetails zusammen mit einem Registrierungsgeheimnis angeben, um auf Ihr erstelltes Image in der Registrierung zuzugreifen.

Wenn Sie ein Build übergeben, das Code aus dem lokalen Verzeichnis extrahiert, wird Ihr Quellcode in eine Archivdatei gepackt und in Ihre IBM Cloud Container Registry-Instanz hochgeladen. Beachten Sie, dass Sie IBM Cloud Container Registry nur für Ihre lokalen Builds verwenden können. Das Quellenimage wird in demselben Namensbereich erstellt wie Ihr Build-Image.

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.

Eine vollständige Liste der Optionen für die Ausführung eines einzelnen Builds finden Sie unter dem Befehl ibmcloud ce buildrun submit.

Einzelnen Build über die CLI ausführen (mit lokaler Quelle und automatischem Registry-Zugriff)

In diesem Szenario mit Automatischem Zugriff erstellt Code Engine ein Image aus Ihrer lokalen Quelle und lädt das Image automatisch mit automatischem Zugriff unter Verwendung von Erstellungsoptionen mit dem Befehl buildrun submit 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. In diesem Fall müssen Sie weder ein Registrierungsgeheimnis noch den Speicherort der Bildregistrierung angeben.

Vorbereitende Schritte

Bevor Sie mit der lokalen Quelle arbeiten, stellen Sie sicher, dass sich Ihre Quelle an einer zugänglichen Position auf Ihrer lokalen Workstation befindet.

In diesem Beispiel werden https://github.com/IBM/CodeEngine-Beispiele verwendet, insbesondere das Beispiel helloworld.

  1. Laden Sie die Beispielquelle https://github.com/IBM/CodeEngine mit dem folgenden Befehl auf Ihre lokale Workstation herunter.

    git clone https://github.com/IBM/CodeEngine
    
  2. Wechseln Sie in das Verzeichnis CodeEngine\helloworld.

  3. Führen Sie im Verzeichnis CodeEngine\helloworld einen Build aus, um ein Image aus der helloworld-Quelle auf Ihrer lokalen Workstation zu erstellen, und lassen Sie Code Engine das Image automatisch speichern und darauf zugreifen. Dieser Befehl erstellt und überträgt das Image automatisch an einen Container Registry-Namensbereich in Ihrem Konto. Wenn Sie nicht über einen Container Registry-Namensbereich verfügen, erstellt Code Engine diesen automatisch für Sie. Der folgende buildrun submit-Befehl führt beispielsweise eine Build-Ausführung mit dem Namen buildrun-local-dockerfile aus, die aus der lokalen Quelle erstellt wird.

    ibmcloud ce buildrun submit --name buildrun-local-dockerfile --source .
    

    . gibt an, dass sich die Build-Quelle im aktuellen Arbeitsverzeichnis befindet.

    • Dieser Beispielbefehl verwendet die Standardstrategie dockerfile und die Standardbuildgröße medium.
    • Ohne Angabe des Speicherorts der Bildregistrierung oder eines Registrierungsgeheimnisses verschiebt Code Engine die Build-Ausgabe nach IBM Cloud Container Registry mit automatischem Zugriff.
    • Code Engine ermittelt anhand des Werts der Option --source automatisch, ob sich Ihre Quelle in einem Repository oder auf einer lokalen Workstation befindet.

    Beispielausgabe

    Packaging files to upload from source path '.'...
    Submitting build run 'buildrun-local-dockerfile'...
    Creating image 'private.us.icr.io/ce--27fe9-glxo4k7nj7d/buildrun-buildrun-local-dockerfile'...
    Run 'ibmcloud ce buildrun get -n buildrun-local-dockerfile' to check the build run status.
    OK
    

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

    Befehlsbeschreibung
    Option Beschreibung
    --name

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

    • Der Name muss mit einem Kleinbuchstaben beginnen und enden.
    • Der Name darf maximal 63 Zeichen umfassen und muss alphanumerische Zeichen in Kleinschreibung sowie Bindestriche (-) enthalten.
    --source Der Pfad zu der lokalen Quelle, die Ihren Quellcode oder die URL des Git-Repositorys enthält, z. B. ..
  4. Verwenden Sie den Befehl buildrun get, um den Status Ihrer Build-Ausführung zu überprüfen.

    ibmcloud ce buildrun get --name buildrun-local-dockerfile
    

    Beispielausgabe

    Getting build run 'buildrun-local-dockerfile'...
    For troubleshooting information visit: https://cloud.ibm.com/docs/codeengine?topic=codeengine-troubleshoot-build.
    Run 'C:\Program Files\IBM\Cloud\bin\ibmcloud.exe ce buildrun events -n buildrun-local-dockerfile' to get the system events of the build run.
    Run 'C:\Program Files\IBM\Cloud\bin\ibmcloud.exe ce buildrun logs -f -n buildrun-local-dockerfile' to follow the logs of the build run.
    OK
    
    Name:          buildrun-local-dockerfile  
    ID:            abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f  
    Project Name:  myproject  
    Project ID:    01234567-abcd-abcd-abcd-abcdabcd1111
    Age:           2d15h
    Created:       2022-06-07T16:09:34-04:00
    Build Type:    local
    
    Summary:       Succeeded
    Status:        Succeeded
    Reason:        All Steps have completed executing
    Source:
        Source Image Digest:  sha256:ced7abc34f018941145efb56e9a0c1fca99236653c2a05dd5b8b985928ff5f4f
    Image Digest:  sha256:6459430ff49436494aa5e3103eaac98ad90ea50df88a2e14af6314fe88f3c952
    
    Image:                   private.us.icr.io/ce--27fe9-glxo4k7nj7d/buildrun-buildrun-local-dockerfile
    Registry Secret:         ce-auto-icr-private-us-south
    Build Strategy:          dockerfile-medium
    Timeout:                 10m0s
    Source Image:            private.us.icr.io/ce--27fe9-glxo4k7nj7d/buildrun-buildrun-local-dockerfile-source
    Source Registry Secret:  ce-auto-icr-private-us-south
    Dockerfile:              Dockerfile
    

    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.

Einzelnen Build mit der CLI ausführen (mit lokaler Quelle und vom Benutzer bereitgestelltem Repository-Zugriff)

In diesem Szenario mit vom Benutzer bereitgestelltem Zugriff erstellt Code Engine ein Image aus Ihrer lokalen Quelle und lädt dann das Image mit dem Registry-Zugriff, den Sie mit dem Befehl buildrun submit bereitstellen, in Ihre Container-Registry hoch.

Vorbereitende Schritte

Bevor Sie mit der lokalen Quelle arbeiten, stellen Sie sicher, dass sich Ihre Quelle an einer zugänglichen Position auf Ihrer lokalen Workstation befindet.

In diesem Beispiel werden https://github.com/IBM/CodeEngine-Beispiele verwendet, insbesondere das Beispiel helloworld.

  1. Laden Sie die Beispielquelle https://github.com/IBM/CodeEngine mit dem folgenden Befehl auf Ihre lokale Workstation herunter.

    git clone https://github.com/IBM/CodeEngine
    
  2. Wechseln Sie in das Verzeichnis CodeEngine\helloworld.

  3. Führen Sie im CodeEngine\helloworld Verzeichnis einen Build-Lauf aus, um ein Image aus der helloworld Quelle auf Ihrer lokalen Workstation zu erstellen, und geben Sie den Speicherort der Image-Registry für die Build-Ausgabe mit einem Registry-Secret an. Dieser buildrun submit-Befehl erstellt das Image automatisch und überträgt es an die Registry, die Sie mit der Option --image angeben. Geben Sie die Option --registry-secret an, um auf Ihre Registry zuzugreifen.

    ibmcloud ce buildrun submit --name buildrun-local-dockerfile2 --source . --image us.icr.io/mynamespace/codeengine-helloworld --registry-secret myregistry
    

    . gibt an, dass sich die Build-Quelle im aktuellen Arbeitsverzeichnis befindet.

    • Code Engine ermittelt anhand des Werts der Option --source automatisch, ob sich Ihre Quelle in einem Repository oder auf einer lokalen Workstation befindet.
    • In diesem Beispiel verwendet der Befehl die Standardstrategie dockerfile und die Standardbuildgröße medium.

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

    Befehlsbeschreibung
    Option Beschreibung
    --name

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

    • Der Name muss mit einem Kleinbuchstaben beginnen und enden.
    • Der Name darf maximal 63 Zeichen umfassen und muss alphanumerische Zeichen in Kleinschreibung sowie Bindestriche (-) enthalten.
    --source Der Pfad zu der lokalen Quelle, die Ihren Quellcode oder die URL des Git-Repositorys enthält, z. B. ..
    --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, wenn Sie das Container-Image erstellen. Führen Sie den Befehl secret create --format registry aus, um einen geheimen Registry-Schlüssel zu erstellen. Das Registrierungsgeheimnis wird für die Authentifizierung bei einer privaten Registrierung verwendet.
  4. Verwenden Sie den Befehl buildrun get, um den Status Ihrer Build-Ausführung zu überprüfen.

    ibmcloud ce buildrun get --name buildrun-local-dockerfile2
    

    Beispielausgabe

    Getting build run 'buildrun-local-dockerfile2'...
    For troubleshooting information visit: https://cloud.ibm.com/docs/codeengine?topic=codeengine-troubleshoot-build.
    Run 'C:\Program Files\IBM\Cloud\bin\ibmcloud.exe ce buildrun events -n buildrun-local-dockerfile2' to get the system events of the build run.
    Run 'C:\Program Files\IBM\Cloud\bin\ibmcloud.exe ce buildrun logs -f -n buildrun-local-dockerfile2' to follow the logs of the build run.
    OK
    
    Name:          buildrun-local-dockerfile2  
    ID:            abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f  
    Project Name:  myproject  
    Project ID:    01234567-abcd-abcd-abcd-abcdabcd1111
    Age:           2d15h
    Created:       2022-06-07T16:34:42-04:00
    Build Type:    local
    
    Summary:       Succeeded
    Status:        Succeeded
    Reason:        All Steps have completed executing
    Source:
        Source Image Digest:  sha256:00fb80a8cdc17394ccae564efceb81f48c2cbcbd76afd0fb0b74019352933a63
    Image Digest:  sha256:25bc4bedccc1b34c98ccd92368246df3e61a7cf0cf4915a32f111669b60e2fea
    
    Image:                   us.icr.io/mynamespace/codeengine-helloworld
    Registry Secret:         myregistry
    Build Strategy:          dockerfile-medium
    Timeout:                 10m0s
    Source Image:            us.icr.io/mynamespace/codeengine-helloworld-source
    Source Registry Secret:  myregistry
    Dockerfile:              Dockerfile
    

Nächste Schritte für Builds

Nachdem Sie ein Container-Image aus Ihrer Quelle erstellt haben, können Sie jetzt eine Anwendung oder einen Job erstellen, die bzw. der Ihr Container-Image verwendet. Siehe Anwendungen bereitstellen und Jobs ausführen.

Benötigen Sie weitere Codebeispiele? Sehen Sie sich die Beispiele für IBM Cloud Code Engine GitHub repoan.