Job aus Images in einer privaten Registry erstellen

Erstellen Sie Ihren Job, der ein Image in einer privaten Registry wie z. B. dem privaten Docker Hub verwendet. Sie können den Job in der Konsole oder in der Befehlszeilenschnittstelle erstellen.

Vorbereitende Schritte

  • Wenn Sie Images aus einer privaten Registry mit Pull-Operation extrahieren möchten, müssen Sie zunächst eine private Registry erstellen. Informationen zum Erstellen einer privaten „ Docker “-Hub-Registrierung finden Sie beispielsweise in der Dokumentation zum „ Docker “-Hub.
  • Nachdem Sie ein privates Repository erstellt haben, laden Sie ein Image dorthin hoch.
  • Sie können auch ein Zugriffstoken konfigurieren. Falls Sie ein Zugriffstoken verwenden, können Sie den Zugriff auf das Docker Hub-Konto ohne erforderliche Kennwortänderung erteilen oder widerrufen. Weitere Informationen zu Zugriffstokens und Docker Hub finden Sie unter Erstellen und Verwalten von Zugriffstokens.

Job, der auf ein Image in einer privaten Registry verweist, über die Konsole erstellen

Erstellen Sie eine Jobkonfiguration, die ein Image in einer privaten Registry mit der Code Engine-Konsole verwendet.

Bevor Sie mit einem Code Engine-Job arbeiten können, der auf ein Image in einer privaten Registry verweist, müssen Sie zunächst den Zugriff auf die Registry gewähren, damit Code Engine das Image extrahieren kann, wenn der Job ausgeführt wird.

  1. Öffnen Sie die Code Engine-Konsole.
  2. Wählen Sie „ Mit der Erstellung beginnen “.
  3. Wählen Sie ein Projekt aus der Liste der verfügbaren Projekte aus. Sie können auch ein neues erstellen. Bitte beachten Sie, dass Sie über ein ausgewähltes Projekt verfügen müssen, um einen Job erstellen zu können.
  4. Wählen Sie Job aus.
  5. Geben Sie einen Namen für den Job ein. Beispiel: myjob.
  6. Wählen Sie „ Vorhandenes Container-Image verwenden “ aus und klicken Sie auf „ Image konfigurieren “.
  7. Geben Sie docker.io als Registry-Server ein.
  8. Wählen Sie für das Registrierungsgeheimnis die Option „ Registrierungsgeheimnis erstellen “ aus.
  9. Wählen Sie auf der Seite „Registrierungsgeheimnis erstellen“ Ihre Registrierungsquelle aus. Beispiel: Docker Hub.
  10. Geben Sie auf der Seite „Registrierungsgeheimnis erstellen“ einen Benutzernamen ein. Der Name für Docker Hub ist die Docker-ID.
  11. Geben Sie auf der Seite „Registrierungsgeheimnis erstellen“ den Zugriffstoken ein. Für Docker Hub können Sie Ihr Docker-Hub-Kennwort oder ein Zugriffstoken verwenden. Weitere Informationen zu Zugriffstokens und Docker Hub finden Sie unter Erstellen und Verwalten von Zugriffstokens.
  12. Klicken Sie auf „Erstellen“, um den Registrierungsschlüssel für „ Code Engine “ hinzuzufügen.
  13. Auf der Seite „Image konfigurieren“ wird das hinzugefügte Registrierungsgeheimnis aufgeführt. Wählen Sie das Registry-Secret für Ihr Image aus.
  14. Wählen Sie den Namensbereich und den Namen des Images in Docker Hub als Referenz für den Code Engine-Job aus. Wählen Sie beispielsweise den Namensbereich mynamespace und das Image testjob in diesem Namensbereich aus.
  15. Wählen Sie einen Wert für Tag aus; z. B. latest.
  16. Klicken Sie auf Fertig. Hiermit haben Sie Ihr Image in der Registry als Referenz für den Job ausgewählt.
  17. Ändern Sie die Standardwerte für Umgebungsvariablen oder Laufzeiteinstellungen. Weitere Informationen zu diesen Optionen finden Sie unter Optionen für Erstellung und Ausführung von Jobs.
  18. Klicken Sie auf der Seite 'Job erstellen' auf Erstellen.
  19. Nachdem Ihr Job erstellt wurde, wird die Jobseite für Ihren bestimmten Job geöffnet. Klicken Sie auf Ihrer Jobseite auf Job übergeben, um einen Job auf der Basis der aktuellen Konfiguration zu übergeben.

Wenn Sie den Registry-Zugriff hinzufügen möchten, bevor Sie eine Jobkonfiguration erstellen, finden Sie weitere Informationen unter Auf Container-Registrys zugreifen.

Erstellen eines Jobs mit einem Image aus einer privaten Registry mit CLI

Wenn Sie eine Jobkonfiguration mit einem Image aus einer privaten Registry mit CLI erstellen möchten, verwenden Sie den Befehl job create. Für diesen Befehl sind ein Name und ein Image erforderlich, weitere optionale Argumente sind möglich. Eine umfassende Liste der Optionen finden Sie im Abschnitt über den Befehl ibmcloud ce job create.

Vorbereitende Schritte

  1. Wenn Sie Images aus einer privaten Registry mit Pull-Operation extrahieren möchten, müssen Sie zunächst eine private Registry erstellen. Informationen zum Erstellen einer privaten „ Docker “-Hub-Registrierung finden Sie beispielsweise in der Dokumentation zum „ Docker “-Hub. Nachdem Sie ein privates Repository erstellt haben, laden Sie ein Image dorthin hoch. Sie können auch ein Zugriffstoken konfigurieren. Falls Sie ein Zugriffstoken verwenden, können Sie den Zugriff auf das Docker Hub-Konto ohne erforderliche Kennwortänderung erteilen oder widerrufen. Weitere Informationen zu Zugriffstokens und Docker Hub finden Sie unter Erstellen und Verwalten von Zugriffstokens.

  2. Fügen Sie Zugriff auf Ihre private Registry hinzu, um Images zu extrahieren. Um Zugriff auf eine private Registry über die CLI hinzuzufügen, verwenden Sie den Befehl ibmcloud ce secret create --format registry, um einen geheimen Registry-Schlüssel zu erstellen. Der folgende Befehl richtet beispielsweise einen Registrierungszugriff auf eine „ Docker Hub“-Registrierung namens „ privatedocker “ ein, die sich unter https://index.docker.io/v1/ befindet, und verwendet dabei Ihren Benutzernamen und Ihr Passwort.

    ibmcloud ce secret create --format registry --name privatedocker --server https://index.docker.io/v1/ --username <Docker_User_Name> --password <Password>
    

    Beispielausgabe

    Creating registry secret 'privatedocker'...
    OK
    
  3. Erstellen Sie Ihre Jobkonfiguration und verweisen Sie auf das Image in Ihrer privaten Docker-Hub-Registry. Erstellen Sie beispielsweise die Jobkonfiguration mytestjob zur Referenzierung von docker.io/privaterepo/testjob mithilfe der Zugriffsinformationen von privatedocker.

    ibmcloud ce job create --name mytestjob --image docker.io/privaterepo/testjob --registry-secret privatedocker
    

Der Name des Images für diesen Job hat das Format REGISTRY/NAMESPACE/REPOSITORY:TAG, wobei Angaben für REGISTRY und TAG optional sind. Wird REGISTRY nicht angegeben, ist docker.io der Standardwert. Wird TAG nicht angegeben, ist latest der Standardwert.

Nächste Schritte

  • Nachdem Sie Ihren Job erstellt haben, übergeben Sie ihn zwecks Ausführung. Weitere Informationen finden Sie unter Job ausführen. Sie können Ihren Job mehrmals ausführen.

  • Wenn Sie Details zu Ihrem Job und zu Jobausführungen anzeigen möchten, nachdem Sie Ihren Job ausgeführt haben, finden Sie weitere Informationen unter Auf Jobdetails zugreifen.

  • Nachdem Ihr Job erstellt wurde, sollten Sie erwägen, Ihre Jobs ereignisgesteuert zu konfigurieren. Mithilfe von Ereignissubskriptionen können Sie Ihre Jobs mittels periodischer Zeitpläne auslösen oder Ihren Job so einstellen, dass er auf Ereignisse wie Dateiuploads reagiert.

  • Sie können Ihren Job aktualisieren und den zugehörigen referenzierten Code in irgendeiner der folgenden Arten verwenden, unabhängig davon, wie Sie Ihren Job erstellt oder zuvor aktualisiert haben.

    • Wenn Sie über ein Container-Image gemäß dem Standard der Open Container Initiative(OCI) verfügen, müssen Sie beim Erstellen (oder Aktualisieren) Ihres Jobs lediglich einen Verweis auf das Image angeben, der auf den Speicherort Ihrer Container-Registry verweist. Sie können Ihren Job anhand von Images aus einem öffentlichen oder privaten Registry erstellen (oder aktualisieren) und anschließend während der Ausführung Ihres Jobs auf das referenzierte Image zugreifen.

      Wenn Sie Ihren Job mit dem Befehl job create erstellt und die Option --build-source angegeben haben, um das Container-Image aus der lokalen Quelle oder der Repository-Quelle zu erstellen, und Sie Ihren Job so ändern möchten, dass er auf ein anderes Container-Image verweist, müssen Sie zuerst die Zuordnung des Builds aus Ihrem Job entfernen. Führen Sie beispielsweise ibmcloud ce job update -n JOB_NAME --build-clear aus. Nachdem Sie die Zuordnung des Builds zu Ihrem Job entfernt haben, können Sie den Job aktualisieren, sodass er auf ein anderes Image verweist.

    • Wenn Sie mit Quellcode beginnen, der sich in einem Git-Repository befindet, können Sie Code Engine überlassen, das Image aus Ihrer Quelle zu erstellen und den Job mit einer einzelnen Operation zu erstellen (oder zu aktualisieren). In diesem Szenario lädt Code Engine Ihr Image in IBM Cloud® Container Registry hoch. Weitere Informationen finden Sie unter Job aus Repository-Quellcode erstellen. Wenn Sie mehr Kontrolle über die Erstellung Ihres Image haben möchten, können Sie das Image mit Code Engine generieren, bevor Sie Ihren Job erstellen (oder aktualisieren) und ausführen.

    • Wenn Sie mit Quellcode beginnen, der sich auf einer lokalen Workstation befindet, können Sie Code Engine das Image aus Ihrer Quelle generieren und den Job mit einem einzelnen CLI-Befehl erstellen lassen. In diesem Szenario lädt Code Engine Ihr Image in IBM Cloud® Container Registry hoch. Weitere Informationen finden Sie unter Job aus lokalem Quellcode über die Befehlszeilenschnittstelle erstellen. Wenn Sie mehr Kontrolle über die Erstellung Ihres Image haben möchten, können Sie das Image mit Code Engine generieren, bevor Sie Ihren Job erstellen (oder aktualisieren) und ausführen.

    Sie können beispielsweise festlegen, dass Code Engine den Build Ihrer lokalen Quelle bearbeiten soll, wenn Sie die Entwicklung Ihrer Quelle für den Job weiterentwickeln. Nachdem das Image fertiggestellt wurde, können Sie den Job aktualisieren, um auf das gewünschte Image zu verweisen. Sie können diesen Prozess nach Bedarf wiederholen.

    Wenn Sie Ihren aktualisierten Job ausführen, wird die neueste Version Ihres referenzierten Container-Image für die Jobausführung verwendet, sofern kein Tag für das Image angegeben ist. Wenn ein Tag für das Image angegeben wird, wird das mit Tags versehene Image für die Jobausführung verwendet.

Benötigen Sie weitere Codebeispiele? Schaut euch die Beispiele im Repository „ IBM Cloud Code Engine “ unter GitHub an.