Passer au contenu principal
Cet article explique en détail comment créer des builds Linux sur PlayFab Multiplayer Servers, à l’aide de conteneurs et de processus.

Créer et déployer des images de conteneur Linux

Cette section décrit les étapes spécifiques permettant de créer et de déployer des images de conteneur Linux. Comme décrit dans Créer des machines virtuelles (VM), lorsque vous utilisez notre service, vous configurez des machines virtuelles qui sont automatiquement démarrées en tant que serveurs de jeu dans le monde entier, en fonction de votre budget et de la demande. Pour ce faire, vous ne créez pas explicitement de machines virtuelles : vous définissez des paramètres qui déterminent la façon dont elles sont créées pour vous. Ce processus est appelé déploiement ou création d’une build. PlayFab Multiplayer Servers peut déployer des serveurs de jeu Linux et Windows. Les builds de conteneurs Linux sont déployées de façon similaire aux conteneurs Windows, à quelques différences importantes près. Pour en savoir plus, consultez Différences entre les images de conteneur Windows et Linux. Si vous souhaitez utiliser PowerShell/l’API pour gérer les conteneurs Linux, consultez Gérer les images de conteneur Linux à l’aide des API. Lorsque vous utilisez des serveurs de jeu Linux, au lieu d’utiliser une image de conteneur managée, vous devez créer votre image de conteneur et la téléverser dans un registre de conteneurs. Pour faciliter le téléversement des conteneurs, votre compte est fourni avec un registre de conteneurs Azure.

Connaissances requises

Configurer votre appareil de développement Windows

Cette étape n’est nécessaire que si vous souhaitez utiliser un appareil de développement Windows pour créer des images de conteneur Linux. Vous pouvez également utiliser des appareils sous système d’exploitation Linux, des machines virtuelles ou des systèmes à double démarrage sur lesquels Docker est installé. Le Sous-système Windows pour Linux (WSL) vous permet d’utiliser votre appareil de développement dans l’environnement Windows qui vous est familier pour créer et gérer des images de conteneur Linux. Avec WSL, vous n’avez pas besoin de la surcharge d’une machine virtuelle Linux traditionnelle ou d’une configuration à double démarrage.
  1. Installez WSL 2. Assurez-vous de redémarrer votre machine et à utiliser WSL 2. Vous devez également installer le package de mise à jour du noyau Linux.
  2. Installez une distribution Linux qui utilise WSL. Bien que nos machines virtuelles utilisent Ubuntu, vous pouvez sélectionner la distribution de votre choix pour votre image de conteneur. Envisagez d’utiliser Ubuntu 20.04 Long-Term Support (LTS) ou une version ultérieure.
  3. Installez Docker Desktop pour Windows avec WSL 2. Pour le lien de téléchargement direct, accédez à Docker Desktop pour Windows (externe).
Vérifier la configuration de WSL 2
  • Ouvrez PowerShell
  • Exécutez wsl -l -v pour vérifier que les applications docker-desktop et ubuntu s’exécutent toutes deux sous WSL 2 (version 2)
Vérifier que Docker est correctement configuré pour WSL
  • Ouvrez un terminal WSL
  • Exécutez docker version pour vérifier que Docker est installé et que le système d’exploitation utilisé est Linux
Pour développer et déboguer des applications C++ Linux, utilisez WSL dans Visual Studio 2019.

Obtenir les informations d’identification de connexion à votre registre de conteneurs PlayFab

Le compte de registre de conteneurs Azure est associé à votre compte PlayFab. Vous seul avez accès aux conteneurs qui y sont téléversés. Ce registre de conteneurs Azure est gratuit.
  • Dans Game Manager, sélectionnez votre titre de jeu, puis Multiplayer > Servers. Sélectionnez New build pour ouvrir la page de création de build.
  • Sélectionnez Linux comme système d’exploitation de la machine virtuelle.
  • Notez les informations d’identification de connexion (nom, mot de passe et customer5555555.azurecr.io), car elles seront nécessaires ultérieurement
Nouvelle build avec la plateforme Linux sélectionnée Si vous souhaitez utiliser PowerShell/l’API, appelez l’API GetContainerRegistryCredentials pour récupérer l’adresse, le nom d’utilisateur et le mot de passe du registre de conteneurs.

Créer des images de conteneur Linux et les envoyer vers Azure Container Registry

Ces étapes vous aident à créer et à envoyer votre image de conteneur Linux personnalisée.

Intégrer votre application de serveur de jeu au GSDK

Comme pour les serveurs Windows, vous devez intégrer le code de votre serveur de jeu au SDK PlayFab Multiplayer Server (GSDK). L’intégration du GSDK peut faire partie de votre image de conteneur. Pour obtenir des instructions, consultez Créer une build de serveur de jeu et Intégration de votre titre au SDK du serveur de jeu PlayFab (GSDK).

Créer un Dockerfile

Un Dockerfile est un fichier texte sans extension qui contient toutes les commandes nécessaires pour générer une image de conteneur donnée.
  1. Ouvrez le Bloc-notes ou tout autre éditeur approprié
  2. Ajoutez les commandes spécifiques nécessaires pour exécuter et générer un conteneur. Pour un exemple de ce fichier, consultez le DockerFile fourni dans l’exemple Wrapper. Pour plus d’informations sur la création de ce fichier, consultez Format du Dockerfile (externe) et Pratiques exemplaires de création d’un Dockerfile (externe)
  3. Enregistrez le fichier en tant que Dockerfile, idéalement dans un dossier/répertoire vide. Vous devez ajouter à ce dossier les autres fichiers nécessaires à la génération de l’image de conteneur.
Instructions d’enregistrement avec le Bloc-notes :
  • Sélectionnez File> Save as… pour ouvrir les options d’enregistrement
  • Accédez au dossier dans lequel vous souhaitez enregistrer le fichier
  • Sous File name:, saisissez “Dockerfile”, guillemets compris.
  • Pour Save as type:, sélectionnez All Files
  • Sélectionnez l’encodage UTF-8
  • Sélectionnez Save

Générer et téléverser l’image de conteneur Linux

  1. Ouvrez votre terminal Linux sur lequel Docker est installé.
  2. Exécutez les commandes Docker suivantes à l’aide des informations d’identification de connexion obtenues à l’étape précédente. Suivez ensuite les instructions à l’écran pour saisir votre nom d’utilisateur et votre mot de passe.
docker sign in vous connecte au registre de conteneurs Azure indiqué dans Game Manager.
  1. Générez l’image de conteneur
Exécutez la commande suivante pour générer l’image de conteneur à l’aide du Dockerfile de votre répertoire actuel. La commande docker build se termine par un ”.”. L’indicateur -t spécifie les informations nom:balise de votre nouvelle image de conteneur. Le nom et la balise sont utilisés si la génération réussit. En cas d’erreurs de génération, vous devez les corriger avant de passer à l’étape suivante. Dans l’exemple suivant, le nom du référentiel est customer5555555.azurecr.io/pvp_gameserver et la balise est v1. Pour plus d’informations, consultez la référence de la commande docker build (lien externe) et Génération d’un Dockerfile (lien externe). Avec WSL, le lecteur C: de Windows est monté sur /mnt/c.
  • Exécutez ensuite cd /mnt/c/path/to/your/Dockerfile pour accéder au chemin de votre Dockerfile. Pour plus d’informations, consultez Accès au lecteur C.
Sous Linux, exécutez pwd pour connaître le répertoire dans lequel vous vous trouvez.
  1. Téléversez l’image de conteneur
Exécutez les commandes permettant d’envoyer l’image vers votre registre de conteneurs PlayFab. Choisissez une combinaison nom:balise significative et utile pour votre image de conteneur téléversée. Pour téléverser votre conteneur dans le registre exploité par PlayFab, utilisez docker push ou un autre client de registre de conteneurs.

Vérifier que votre conteneur est téléversé

Une fois le conteneur téléversé, revenez à la page New Build de Game Manager et sélectionnez Refresh Images. Vous pourrez voir l’image dans la liste et la sélectionner. Vous pouvez également utiliser l’appel d’API ListContainerImages pour répertorier vos images de conteneur téléversées. Vous êtes maintenant prêt à déployer des serveurs. Pour obtenir des instructions, consultez Portail PlayFab—Game Manager et Utilisation de PowerShell/de l’API.

Différences entre les images de conteneur Windows et Linux

Pour de nombreux développeurs, l’utilisation du conteneur Windows managé est le choix simple et par défaut privilégié. Toutefois, les images de conteneur Linux déployées sur des machines virtuelles bénéficient d’un tarif horaire moins élevé.
Vous pouvez personnaliser entièrement vos serveurs de jeu, que vous utilisiez des images de conteneur Windows ou Linux. Avec les serveurs Windows, vous personnalisez l’image de conteneur managée en téléversant des actifs.
Le tableau suivant répertorie certaines différences de création et d’utilisation.

Gérer les images de conteneur Linux à l’aide des API

Vous pouvez utiliser les API pour gérer les images de conteneur Linux. Pour le reste du cycle de vie des builds (consultation de l’utilisation, mise à jour des régions et des configurations standingBy, suppression), gérez-les à l’aide de Game Manager.
  • GetContainerRegistryCredentials : récupère l’adresse, le nom d’utilisateur et le mot de passe du registre de conteneurs
  • ListContainerImages et ListContainerImageTags : vérifiez que votre nouvelle image et sa balise sont répertoriées (il peut parfois falloir quelques minutes pour que l’image soit entièrement inscrite dans le système)
  • CreateBuildWithCustomContainer : crée une build avec un conteneur personnalisé. Spécifiez l’image balisée que vous avez téléversée précédemment. Assurez-vous que les propriétés suivantes sont définies dans la requête :
    • ContainerImageReference : le nom et la balise de l’image téléversée précédemment. Ces valeurs sont visibles dans ListContainerImages et ListContainerImageTags.
    • ContainerFlavor : “CustomLinux”
    • ContainerRunCommand (facultatif) : si votre conteneur n’a pas de commande par défaut, utilisez cette propriété pour fournir la commande à exécuter, avec ses éventuels arguments.

Empaquetage des actifs pour les serveurs Linux basés sur un processus

Lorsque vous utilisez Linux en mode processus (au lieu du mode conteneur), vous téléversez votre serveur de jeu sous forme d’archive d’actifs plutôt que d’image de conteneur. Cette section décrit les exigences d’empaquetage importantes.

Formats d’archive pris en charge

Les actifs doivent être téléversés sous forme de fichiers .tar.gz ou .tar, afin que les autorisations de fichier Unix (comme le bit d’exécution) soient conservées lors de l’extraction.
Les fichiers .zip ne conservent pas les autorisations de fichier Unix sous Linux. Si vous téléversez l’exécutable de votre serveur de jeu Linux dans une archive .zip, il perd son autorisation d’exécution et ne démarre pas, avec une erreur “Permission denied”. Pour contourner ce problème, utilisez plutôt .tar.gz, ou définissez comme commande de démarrage un script shell qui exécute chmod +x sur votre exécutable avant de le lancer.

Exigences de structure des archives tar.gz et tar

Lors de l’extraction des archives .tar ou .tar.gz, PlayFab Multiplayer Servers supprime le premier niveau de répertoire de l’archive (équivalent à tar --strip-components=1). Votre archive doit contenir un seul répertoire englobant de premier niveau, à l’intérieur duquel se trouvent tous vos fichiers de jeu. Structure correcte : fichiers placés dans un répertoire de premier niveau :
Créez l’archive avec :
Si vos fichiers se trouvent à la racine de l’archive sans répertoire englobant, ils sont ignorés sans avertissement lors de l’extraction. Votre serveur de jeu échoue avec des erreurs “No such file or directory”, car l’exécutable n’est jamais écrit sur le disque.

Définition de la commande de démarrage

Pour les serveurs basés sur un processus, la commande de démarrage doit être relative au dossier racine des actifs après l’extraction (c’est-à-dire relative à l’emplacement des fichiers une fois le répertoire de premier niveau supprimé). Par exemple, si votre archive contient MyGameServer/MyGame.x86_64, après l’extraction, le fichier se trouve à la racine du dossier des actifs. Définissez votre commande de démarrage sur :
Si votre exécutable se trouve dans un sous-dossier (par exemple, MyGameServer/bin/MyGame.x86_64), définissez la commande de démarrage sur :

Gérer les builds Linux basées sur un processus à l’aide des API

Vous pouvez utiliser les API pour gérer les builds Linux basées sur un processus. Pour le reste du cycle de vie des builds (consultation de l’utilisation, mise à jour des régions et des configurations standingBy, suppression), gérez-les à l’aide de Game Manager.
  • CreateBuildWithProcessBasedServer : crée une build dont le serveur de jeu s’exécute en tant que processus. Assurez-vous que les propriétés suivantes sont définies dans la requête :
    • OsPlatform : “Linux”
    • GameAssetReferences : la liste des actifs de jeu (téléversés sous forme de fichiers .tar.gz ou .tar). Chaque actif nécessite un FileName correspondant au nom de l’actif téléversé.
    • StartMultiplayerServerCommand : la commande à exécuter au démarrage du serveur de jeu. Le chemin doit être relatif au dossier racine des actifs après l’extraction (par exemple, MyGame.x86_64 -server).
    • Ports : les ports à mapper pour la build.
    • MultiplayerServerCountPerVm : le nombre d’instances de serveur de jeu à héberger sur une même machine virtuelle.
    • RegionConfigurations : les régions dans lesquelles effectuer le déploiement, avec le nombre de serveurs en attente et le nombre maximal de serveurs.

Voir aussi

Dernière modification le 8 octobre 2026