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)
-
Rufen Sie das Code Engine-Dashboard auf.
-
Wählen Sie das Projekt aus, in dem Sie das Container-Registry hinzugefügt haben.
-
Klicken Sie auf der Projektseite auf Image-Builds.
-
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.
-
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.
- 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
-
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.
-
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 secretauswä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.
-
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
- Konfigurieren Sie die Umgebung der Code Engine-Befehlszeilenschnittstelle.
- Erstellen Sie ein Projekt und arbeiten Sie damit.
-
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 Namenhelloworld-build, die aus der Quelle im öffentlichen Git-Repositoryhttps://github.com/IBM/CodeEngineerstellt wird. In diesem Beispiel verwendet der Befehl die Standardstrategiedockerfileund die Standardbuildgrößemedium. Da der Name der Verzweigung des Repositorys nicht mit der Option--commitangegeben wird, verwendet Code Engine automatisch die Standardverzweigung des angegebenen Repositorys, die für dieses Git-Repositorymainlautet. 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 /helloBeispielausgabe
Creating build helloworld-build... OKDie folgende Tabelle vermittelt Ihnen einen Überblick über die Optionen, die in diesem Beispiel beim Befehl
build createverwendet werden. Weitere Informationen zum Befehl und den zugehörigen Optionen finden Sie im Abschnitt über den Befehlibmcloud ce build create.Befehlsbeschreibung Option Beschreibung --nameDer 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.
--sourceDie URL des Git-Repositorys, in dem der Quellcode enthalten ist; Beispiel: https://github.com/IBM/CodeEngine.--context-dirDas 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. -
Mit dem Befehl
build getkönnen Sie den Status Ihres Builds überprüfen.ibmcloud ce build get --name helloworld-buildBeispielausgabe
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
- 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.
-
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 createdie Option--imagean, um die Position der Image-Registry anzugeben, und geben Sie die Option--registry-secretan, um auf die Registry zuzugreifen. Der folgende Befehl erstellt beispielsweise eine Buildkonfiguration mit dem Namenhelloworld-build2, die aus dem öffentlichen Git-Repositoryhttps://github.com/IBM/CodeEngineerstellt und das Image unter Verwendung des geheimen Schlüssels dermyregistry-Registry inus.icr.io/mynamespace/codeengine-helloworldspeichert. In diesem Beispiel verwendet der Befehl die Standardstrategiedockerfileund die Standardbuildgrößemedium. Da der Name der Verzweigung des Repositorys nicht mit der Option--commitangegeben wird, verwendet Code Engine automatisch die Standardverzweigung des angegebenen Repositorys, die für dieses Git-Repositorymainlautet.Wenn Sie die Option
--strategymit dem Wertdockerfileverwenden, stellen Sie sicher, dass die Option--dockerfileordnungsgemäß auf den Namen derdockerfilefestgelegt ist. Der Standardwert für die Option--strategylautetDockerfile.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 /helloBeispielausgabe
Creating build helloworld-build2... OKDie folgende Tabelle vermittelt Ihnen einen Überblick über die Optionen, die in diesem Beispiel beim Befehl
build createverwendet werden. Weitere Informationen zum Befehl und den zugehörigen Optionen finden Sie im Abschnitt über den Befehlibmcloud ce build create.Befehlsbeschreibung Option Beschreibung --nameDer 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.
--imageDie Position der Image-Registry. Die Position muss im Format REGISTRY/NAMESPACE/REPOSITORYoderREGISTRY/NAMESPACE/REPOSITORY:TAGangegeben sein, wobei die Angabe vonTAGoptional ist. WirdTAGnicht angegeben, istlatestder Standardwert.--registry-secretDas 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 registryausführen. Das Registrierungsgeheimnis wird für die Authentifizierung bei einer privaten Registrierung verwendet.--sourceDie URL des Git-Repositorys, in dem der Quellcode enthalten ist; Beispiel: https://github.com/IBM/CodeEngine.--context-dirDas 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. -
Mit dem Befehl
build getkönnen Sie den Status Ihres Builds überprüfen.ibmcloud ce build get --name helloworld-build2Beispielausgabe
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.