Freigeben über


Erstellen und Bereitstellen von Linux-Containerimages

In diesem Artikel werden bestimmte Schritte beschrieben, die Sie beim Erstellen und Bereitstellen von Linux-Containerimages unterstützen.

Wie unter Erstellen von VMs beschrieben, konfigurieren Sie VMs so, dass sie bei der Nutzung unseres Diensts automatisch global gemäß Ihrem Budget und Ihrer Nachfrage als Spieleserver bereitgestellt werden. Dazu erstellen Sie VMs nicht explizit, sondern definieren Parameter, die bestimmen, wie sie in Ihrem Namen erstellt werden. Dieser Vorgang wird als Bereitstellen oder Erstellen eines Builds bezeichnet.

PlayFab Multiplayer-Server können sowohl Linux-basierte als auch Windows-basierte Spieleserver bereitstellen. Die Art und Weise, wie Builds für Linux-Container bereitgestellt werden, ähnelt Windows-Containern mit einigen wichtigen Unterschieden. Weitere Informationen finden Sie unter Unterschiede zwischen Windows- und Linux-Containerimages. Wenn Sie PowerShell/API zum Verwalten von Linux-Containern verwenden möchten, lesen Sie Verwalten von Linux-Containerimages mithilfe von APIs.

Wenn Sie Linux-basierte Spieleserver verwenden, müssen Sie anstelle eines verwalteten Containerimages Ihr Containerimage erstellen und in eine Containerregistrierung hochladen. Um Ihnen das Hochladen von Containern zu erleichtern, enthält Ihr Konto eine Azure-Containerregistrierung.

Erforderliche Kenntnisse

Einrichten Ihres Windows-Entwicklungsgeräts

Dieser Schritt ist nur erforderlich, wenn Sie ein Windows-Entwicklungsgerät zum Erstellen von Linux-Containerimages verwenden möchten. Alternativ können Sie Linux-Betriebssystemgeräte, VMs oder Dual-OS-Systeme verwenden, auf denen Docker installiert ist.

mit Windows-Subsystem für Linux (WSL) können Sie Ihr Entwicklungsgerät in der vertrauten Windows-Umgebung verwenden, um Linux-Containerimages zu erstellen und zu verwalten. Die Verwendung von WSL bedeutet, dass Sie keinen Mehraufwand für einen herkömmlichen virtuellen Linux-Computer oder ein Dual-Boot-Setup benötigen.

  1. Installieren Sie WSL 2. Stellen Sie sicher, dass Sie Ihren Computer neu gestartet haben und WSL 2 verwenden. Außerdem müssen Sie das Linux-Kernelupdatepaket erfolgreich installiert haben.
  2. Installieren Sie eine Linux-Distribution, die WSL verwendet. Obwohl unsere VMs Ubuntu verwenden, können Sie eine beliebige Distribution für Ihr Containerimage auswählen. Erwägen Sie die Verwendung von Ubuntu 20.04 LTS oder höher.
  3. Installieren Sie Docker Desktop für Windows mit WSL 2. Einen direkten Downloadlink finden Sie unter Docker Desktop für Windows (extern).

Überprüfen der Einrichtung von WSL 2

  • Öffnen von PowerShell
  • Führen Sie wsl -l -v aus, um zu überprüfen, ob sowohl docker-desktop- als auch ubuntu-Anwendungen WSL 2 (Version 2) ausführen.

Überprüfen der ordnungsgemäßen Einrichtung von Docker für WSL

  • Öffnen des WSL-Terminals
  • Führen Sie die Docker-Version aus, um zu bestätigen, dass Docker installiert ist und das verwendete Betriebssystem Linux ist.

Tipp

Verwenden Sie zum Entwickeln und Debuggen von Linux-C++-Anwendungen WSL in Visual Studio 2019.

Abrufen der Anmeldeinformationen für Die PlayFab-Containerregistrierung

Das Azure Container Registry-Konto ist Ihrem PlayFab-Konto zugeordnet. Nur Sie haben Zugriff auf die dort hochgeladenen Container. Diese Azure-Containerregistrierung ist kostenlos.

  • Wählen Sie im Game Manager Ihren Spieltitel und dann Multiplayerserver> aus. Wählen Sie als Nächstes auf der rechten Seite Neuer Build aus, um die Builderstellungsseite zu öffnen.
  • Wählen Sie Linux als Betriebssystem des virtuellen Computers aus.
  • Notieren Sie sich die Anmeldeinformationen – Name, Kennwort und customer5555555.azurecr.io, da diese Informationen später benötigt werden.

Neuer Build mit ausgewählter Linux-Plattform

Wenn Sie PowerShell/API verwenden möchten, rufen Sie die GetContainerRegistryCredentials-API auf, um eine Containerregistrierungsadresse, einen Benutzernamen und ein Kennwort abzurufen.

Erstellen und Pushen von Linux-Containerimages in Azure Container Registry

Mithilfe dieser Schritte können Sie Ihr benutzerdefiniertes Linux-Containerimage erstellen und pushen.

Integrieren Ihrer Spieleserveranwendung in GSDK

Ähnlich wie bei der Verwendung von Windows-Servern müssen Sie Ihren Spielservercode in das PlayFab Multiplayer Server SDK (GSDK) integrieren. Dies kann Teil Ihres Containerimages sein.

Anweisungen finden Sie unter Erstellen eines Spieleserverbuilds und Integrieren Ihres Titels in das PlayFab Game Server SDK (GSDK).

Erstellen einer Dockerfile-Datei

Ein Dockerfile ist eine Textdatei ohne Erweiterung und enthält alle Befehle, die zum Erstellen eines bestimmten Containerimages erforderlich sind.

  1. Editor oder einen geeigneten Editor öffnen
  2. Fügen Sie bestimmte Befehle hinzu, die zum Ausführen und Erstellen eines Containers erforderlich sind. Ein Beispiel für diese Datei finden Sie im DockerFile-Beispiel im Wrapper-Beispiel. Weitere Informationen zum Erstellen dieser Datei finden Sie unter Dockerfile-Format (extern) und Bewährte Methoden beim Erstellen von Dockerfile (extern).
  3. Speichern Sie die Datei als Dockerfile, idealerweise in einem leeren Ordner/Verzeichnis. Sie sollten weitere Dateien hinzufügen, die zum Erstellen des Containerimages in diesem Ordner erforderlich sind.

Speichern von Anweisungen bei Verwendung von Editor:

  • Wählen Sie Datei>Speichern unter... aus, um die Speicheroptionen zu öffnen.
  • Wechseln Sie zu dem Ordner, in dem Sie die Datei speichern möchten.
  • Verwenden Sie unter Dateiname:"Dockerfile", einschließlich der Anführungszeichen.
  • Wählen Sie für Dateityp die Option Alle Dateien aus.
  • Utf-8-Codierung auswählen
  • Wählen Sie Speichern aus.

Erstellen und Hochladen eines Linux-Containerimages

  1. Öffnen Sie Ihr Linux-Terminal, und stellen Sie sicher, dass Sie Docker installiert haben.
  2. Führen Sie die folgenden Docker-Befehle mit den Anmeldeinformationen aus, die Sie aus dem vorherigen Schritt erhalten haben. Befolgen Sie dann die Anweisungen auf dem Bildschirm, um Ihren Benutzernamen und Ihr Kennwort einzugeben.
docker login customer5555555.azurecr.io

Docker sign in meldet Sie bei der Azure-Containerregistrierung an, wie in Game Manager gezeigt.

username: customer5555555
password: HRDFOdIebJkvBAS+usa55555555
  1. Erstellen des Containerimages

Führen Sie den folgenden Befehl aus, um das Containerimage mithilfe der Dockerfile-Datei in dem Ordner/Verzeichnis zu erstellen, in dem Sie sich befinden. Beachten Sie, dass am Ende des Docker-Buildbefehls ein "." vorhanden ist.

Das Flag -t gibt die Name:Tag-Informationen für Ihr neues Containerimage an. Sie werden verwendet, wenn der Build erfolgreich ist. Wenn Buildfehler vorhanden sind, müssen Sie diese beheben, bevor Sie mit dem nächsten Schritt fortfahren.

Im folgenden Beispiel lautet der Repositoryname customer5555555.azurecr.io/pvp_gameserver und das Tag v1. Weitere Informationen finden Sie unter docker build command reference (externer Link) und Building Dockerfile (externer Link).For more information, see docker build command reference (external link) and Building Dockerfile (external link).For more information, see docker build command reference (external link) and Building Dockerfile (external link).For more information

Bei Verwendung von WSL wird das Windows C:-Laufwerk unter /mnt/c eingebunden.

  • Führen Sie dann cd /mnt/c/path/to/your/Dockerfile aus, um zu dem Pfad zu wechseln, in dem sich Ihre Dockerfile-Datei befindet. Weitere Informationen finden Sie unter Zugreifen auf Laufwerk C.
docker build -t customer5555555.azurecr.io/pvp_gameserver:v1 .

Tipp

Wenn Sie Linux verwenden, führen Sie pwd aus, um herauszufinden, in welchem Verzeichnis Sie sich derzeit befinden.

  1. Hochladen des Containerimages

Führen Sie die folgenden Befehle aus, um das Image per Push in Ihre Azure PlayFab Container-Registrierung zu übertragen. Wählen Sie eine aussagekräftige und hilfreiche Kombination aus Name:Tag für Ihr hochgeladenes Containerimage aus. Verwenden Sie dann Docker-Push oder einen anderen Containerregistrierungsclient, um Ihren Container in die von Azure PlayFab betriebene Registrierung hochzuladen.

docker tag hello-world customer5555555.azurecr.io/pvp_gameserver:v1
docker push customer5555555.azurecr.io/pvp_gameserver:v1

Überprüfen, ob Ihr Container hochgeladen wurde

Wechseln Sie nach dem Hochladen des Containers zurück zur Seite Neuer Build in Game Manager, und wählen Sie Images aktualisieren aus. Sie können das Bild in der Liste sehen und auswählen. Alternativ können Sie den API-Aufruf ListContainerImages verwenden, um Ihre hochgeladenen Containerimages aufzulisten.

Jetzt können Sie Server bereitstellen. Anweisungen finden Sie unter PlayFab-Portal – Game Manager und Verwenden von PowerShell/API.

Unterschiede zwischen Windows- und Linux-Containerimages

Für viele Entwickler ist die Verwendung von verwalteten Windows-Containern die bevorzugte einfache und standardmäßige Wahl. Linux-Containerimages, die auf virtuellen Computern bereitgestellt werden, profitieren jedoch von einem günstigeren Stundensatz.

Notiz

Sie können Ihre Spieleserver vollständig anpassen, unabhängig davon, ob Sie Windows- oder Linux-Containerimages verwenden. Wenn Sie Windows-Server verwenden, passen Sie das verwaltete Containerimage an, indem Sie Ressourcen hochladen.

In der folgenden Tabelle sind einige Unterschiede beim Erstellen und Verwenden aufgeführt.

Entwickleroptionen Windows Linux
Entwicklungsgerätebetriebssystem Windows-Betriebssystem Windows-Subsystem für Linux (WSL) oder Linux-Betriebssystem (mit dualen Betriebssystemen oder VMs)
Containerimage Einfache Bereitstellung mithilfe unseres verwalteten Containerimages. Sie können den Container weiterhin anpassen, indem Sie zusätzliche Dateien als Ressourcen hochladen. Zusätzliche Arbeit ist erforderlich, da Sie ein eigenes benutzerdefiniertes Containerimage erstellen müssen, das Ihnen die vollständige Kontrolle bietet.

Verwalten von Linux-Containerimages mithilfe von APIs

Sie können APIs verwenden, um Linux-Containerimages zu verwalten. Verwalten Sie sie für den Rest des Buildlebenszyklus (Anzeigen der Nutzung, Aktualisieren von Regionen und StandingBy-Konfigurationen, Löschen) mithilfe von Game Manager.

  • GetContainerRegistryCredentials: Abrufen einer Containerregistrierungsadresse, eines Benutzernamens und eines Kennworts
  • ListContainerImages und ListContainerImageTags: Stellen Sie sicher, dass Ihr neues Image und Tag aufgelistet sind (manchmal kann es einige Minuten dauern, bis das Image vollständig im System registriert ist).
  • CreateBuildWithCustomContainer: Erstellen Sie einen Build mit einem benutzerdefinierten Container. Geben Sie das markierte Bild an, das Sie zuvor hochgeladen haben. Stellen Sie sicher, dass die folgenden Eigenschaften für die Anforderung festgelegt sind:
    • ContainerImageReference : Der Imagename und das Tag, das zuvor hochgeladen wurde (und ist oben in ListContainerImages und ListContainerImageTags sichtbar).
    • ContainerFlavor – "CustomLinux"
    • ContainerRunCommand (Optional): Falls Ihr Container nicht über einen Standardbefehl verfügt, der ausgeführt wird, kann dieser verwendet werden, um den auszuführenden Befehl zusammen mit allen Argumenten bereitzustellen.

Weitere Informationen