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
- Konfigurieren Sie die Umgebung der Code Engine-Befehlszeilenschnittstelle.
- Erstellen Sie ein Projekt und arbeiten Sie damit.
-
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 Namenhelloworld-buildrun
aus, die aus der Quelle im öffentlichen Git-Repositoryhttps://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ößemedium
. - 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-Repositorymain
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 Befehlibmcloud 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. - In diesem Beispiel verwendet der Befehl die Standardstrategie
-
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
- Konfigurieren Sie die Umgebung der Code Engine-Befehlszeilenschnittstelle.
- Erstellen Sie ein Projekt und arbeiten Sie damit.
- Erstellen Sie einen geheimen Schlüssel für die Registry, damit Sie Ihr Image speichern können.
-
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 Namenhelloworld-buildrun2
aus, die aus dem öffentlichen Git Repositoryhttps://github.com/IBM/CodeEngine
erstellt und das Image in derus.icr.io/mynamespace/codeengine-helloworld
-Registry speichert, indem er den geheimen Schlüssel dermyregistry
-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ößemedium
. - 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-Repositorymain
lautet. - Wenn Sie die Option
--strategy
mit dem Wertdockerfile
verwenden, stellen Sie sicher, dass die Option--dockerfile
ordnungsgemäß auf den Namen derdockerfile
festgelegt ist. Der Standardwert für die Option--strategy
lautetDockerfile
. - 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 Befehlibmcloud 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
oderREGISTRY/NAMESPACE/REPOSITORY:TAG
angegeben sein, wobei die Angabe vonTAG
optional ist. WirdTAG
nicht angegeben, istlatest
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. - In diesem Beispiel verwendet der Befehl die Standardstrategie
-
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
- Konfigurieren Sie die Umgebung der Code Engine-Befehlszeilenschnittstelle.
- Erstellen Sie ein Projekt und arbeiten Sie damit.
- Erstellen Sie einen geheimen Schlüssel für das Git-Repository zwecks Zugriff auf Ihre Quelle.
-
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 Namenhelloworld-buildrun-private
aus, die aus dem privaten Git-Repositoryhttps://github.com/myprivaterepo/builds
erstellt 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ößemedium
. - 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 mithttp
oderhttps
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 Befehlibmcloud 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
undbuildpacks
.--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. - Dieser Beispielbefehl verwendet die Strategie
-
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
- Konfigurieren Sie die Umgebung der Code Engine-Befehlszeilenschnittstelle.
- Erstellen Sie ein Projekt und arbeiten Sie damit.
- Geheimen SSH-Schlüssel für den Zugriff auf Ihre Quelle erstellen.
- Erstellen Sie einen geheimen Schlüssel für die Registry, damit Sie Ihr Image speichern können.
-
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 Namenhelloworld-buildrun-private2
aus, die aus dem privaten Git-Repositoryhttps://github.com/myprivaterepo/builds
erstellt wird, und speichert das Image inus.icr.io/mynamespace/codeengine-helloworld
, indem der geheime Schlüssel dermyregistry
-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ößemedium
. - 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 mithttp
oderhttps
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 Befehlibmcloud 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
oderREGISTRY/NAMESPACE/REPOSITORY:TAG
angegeben sein, wobei die Angabe vonTAG
optional ist. WirdTAG
nicht angegeben, istlatest
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
undbuildpacks
.--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. - Dieser Beispielbefehl verwendet die Strategie
-
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
- Konfigurieren Sie die Umgebung der Code Engine-Befehlszeilenschnittstelle.
- Erstellen Sie ein Projekt und arbeiten Sie damit.
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
.
-
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
-
Wechseln Sie in das Verzeichnis
CodeEngine\helloworld
. -
Führen Sie im Verzeichnis
CodeEngine\helloworld
einen Build aus, um ein Image aus derhelloworld
-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 folgendebuildrun submit
-Befehl führt beispielsweise eine Build-Ausführung mit dem Namenbuildrun-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ößemedium
. - 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 Befehlibmcloud 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. .
. - Dieser Beispielbefehl verwendet die Standardstrategie
-
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
- Konfigurieren Sie die Umgebung der Code Engine-Befehlszeilenschnittstelle.
- Erstellen Sie ein Projekt und arbeiten Sie damit.
- Erstellen Sie einen geheimen Schlüssel für die Registry, damit Sie Ihr Image speichern können.
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
.
-
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
-
Wechseln Sie in das Verzeichnis
CodeEngine\helloworld
. -
Führen Sie im
CodeEngine\helloworld
Verzeichnis einen Build-Lauf aus, um ein Image aus derhelloworld
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. Dieserbuildrun 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ößemedium
.
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 Befehlibmcloud 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
oderREGISTRY/NAMESPACE/REPOSITORY:TAG
angegeben sein, wobei die Angabe vonTAG
optional ist. WirdTAG
nicht angegeben, istlatest
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. - Code Engine ermittelt anhand des Werts der Option
-
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.