Github-gehostete Runner für Unternehmen
Übersicht
{Anleitungen zum Ausführen von Jobs in einem Container}
Dockerfile-Anweisungen und Überschreibungen
Eine Dockerfile-Datei enthält Anweisungen und Argumente, die den Inhalt und das Startverhalten eines Docker-Containers definieren. Weitere Informationen zu den Anweisungen, die Docker unterstützt, findest du in der Docker-Dokumentation unter Dockerfile-Referenz.
Einige Docker-Anweisungen interagieren mit GitHub Actions, und die Metadatendatei einer Aktion kann einige Docker-Anweisungen überschreiben. Vergewissere Dich, dass Dir klar ist, wie dein Dockerfile mit GitHub Actions interagiert, um unerwartetes Verhalten zu verhindern.
Referenzinformationen findest du unter Dockerfile Unterstützung für GitHub Aktionen.
Das Container-Image definieren
Verwende jobs.<job_id>.container.image, um das Docker-Image zu definieren, das beim Ausführen der Aktion als Container herangezogen wird. Der Wert kann der Name des Docker Hub-Images oder ein Registrierungsname sein.
Hinweis
Docker Hub erzwingt in der Regel Grenzwerte für Push- und Pullvorgänge, die sich auf Aufträge auf selbstgehosteten Runnern auswirken. Über GitHub gehostete Runner unterliegen diesen Grenzwerten jedoch basierend auf einer Vereinbarung zwischen GitHub und Docker nicht.
Definieren der Anmeldeinformationen für eine Container-Registrierung
Wenn die Containerregistrierung des Images eine Authentifizierung benötigt, damit das Image gepullt werden kann, kannst du mit jobs.<job_id>.container.credentials eine map von username und password festlegen. Die Anmeldeinformationen sind dieselben Werte, die du für den docker login-Befehl angeben würdest.
Beispiel: Definieren der Anmeldeinformationen für eine Containerregistrierung
container:
image: ghcr.io/owner/image
credentials:
username: ${{ github.actor }}
password: ${{ secrets.github_token }}
Verwenden von Umgebungsvariablen mit einem Container
{Laufende Aufgaben in einer Containerumgebung verwalten}
Offenlegen von Netzwerkports auf einem Container
Verwende jobs.<job_id>.container.ports zum Festlegen eines array aus Ports, die für den Container verfügbar gemacht werden sollen.
Einbinden von Volumes in einem Container
Verwende jobs.<job_id>.container.volumes zum Festlegen eines array von Volumes, die der Container verwenden soll. Mithilfe von Volumes kannst Du Daten zwischen Diensten oder anderen Schritten in einem Job austauschen. Du kannst benannte Docker-Volumes, anonyme Docker-Volumes oder Bind-Mounts auf dem Host angegeben.
Um ein Volume festzulegen, gibst du den Quell- und Zielpfad an:
<source>:<destinationPath>.
<source> ist ein Volumename oder ein absoluter Pfad auf dem Hostcomputer, und <destinationPath> ist ein absoluter Pfad im Container.
Beispiel: Einbinden von Volumes in einem Container
volumes:
- my_docker_volume:/volume_mount
- /data/my_data
- /source/directory:/destination/directory
Festlegen von Containerressourcenoptionen
Verwende jobs.<job_id>.container.options zum Konfigurieren zusätzlicher Optionen für Docker-Containerressourcen. Eine Liste der Optionen findest du unter docker create-Optionen.
Warnung
Die Optionen --network und --entrypoint werden nicht unterstützt.