Créez une image de conteneur pour Amazon GameLift Servers - Amazon GameLift Servers

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Créez une image de conteneur pour Amazon GameLift Servers

Cette rubrique explique comment créer une image de conteneur à l'aide du logiciel de votre serveur de jeuAmazon GameLift Servers. Une image de conteneur de serveur de jeu inclut l'exécutable du serveur de jeu et toutes les dépendances dont il a besoin pour fonctionner. Les images de conteneurs de serveurs de jeux sont utilisées avec une solution d'hébergement de conteneurs Amazon GameLift Servers gérés. Pour plus de détails sur la création de la solution complète, voir :

Effectuez les tâches suivantes pour préparer l'image de conteneur de votre serveur de jeu à être déployée sur une flotte de Amazon GameLift Servers conteneurs. Avant de commencer ces tâches, terminez d'intégrer le code de votre serveur de jeu au SDK Amazon GameLift Servers du serveur.

Création d'une image de conteneur de serveur de jeu

Suivez ces instructions lorsque vous travaillez sur une plate-forme Linux ou que vous utilisez le sous-système Windows pour Linux (WSL) avec Docker installé.

Pour créer une image de conteneur de serveur de jeu
  1. Préparez un répertoire de travail avec le logiciel de votre serveur de jeu. Sur une machine locale, créez un répertoire de travail pour organiser les fichiers du conteneur de votre serveur de jeu. Votre image de conteneur utilise cette structure de fichier lors du déploiement du conteneur sur Amazon GameLift Servers des ressources à des fins d'hébergement. Par exemple :

    [~/]$ mkdir -p work/glc/gamebuild && cd work && find . . ./glc ./glc/gamebuild
    Note

    Si vous essayez cette fonctionnalité et que vous n'avez pas encore de version de serveur de jeu fonctionnelle, essayez notre exemple de serveur de jeu SimpleServer, disponible sur GitHub.

  2. Créez un nouveau Dockerfile à l'aide du modèle fourni.

  3. Suivez les instructions du modèle Dockerfile pour le mettre à jour pour votre propre usage.

    • Mettez à jour l'image de base selon vos besoins.

    • Définissez des variables d'environnement pour la construction de votre serveur de jeu.

  4. Créez l'image du conteneur. Exécutez le docker build en spécifiant le nom de votre propre dépôt. Par exemple :

    [~/work/glc]$ docker build -t <local repository name>:<optional tag> .

    Vous pouvez afficher vos référentiels et vos images IDs à l'aide de la docker images commande, comme illustré dans cet exemple :

Ce modèle contient les instructions minimales dont un conteneur de serveur de jeu a besoin pour être utilisé dans une Amazon GameLift Servers flotte. Modifiez le contenu selon les besoins de votre serveur de jeu.

# Base image # ---------- # Add the base image that you want to use, # Make sure to use an image with the same architecture as the # Instance type you are planning to use on your fleets. FROM public.ecr.aws/amazonlinux/amazonlinux # # Game build directory # -------------------- # Add your gamebuild directory to the env variable below. # The game build provided here needs to be integrated with server sdk for Amazon GameLift Servers. ENV GAME_BUILD_DIRECTORY="<ADD_GAME_BUILD_DIRECTORY>" \ # # Game executable and launch parameters # --------------- # Add the relative path to your executable in the 'GAME_EXECUTABLE' env variable below. # The game build provided over here needs to be integrated with server sdk for Amazon GameLift Servers. # This template assumes that the executable path is relative to the game build directory. # Add any launch parameters to pass into your executable in the 'LAUNCH_PARAMS' env variable below. # Add 'HOME_DIR' to identify where the game executable and logs exist. GAME_EXECUTABLE="<ADD NAME OF EXECUTABLE WITHIN THE GAME DIRECTORY>" \ LAUNCH_PARAMS=<ADD LAUNCH PARAMETERS> \ HOME_DIR="/local/game" \ # Install dependencies as necessary RUN yum install -y shadow-utils RUN mkdir -p $HOME_DIR COPY ./$GAME_BUILD_DIRECTORY/ $HOME_DIR # Change directory to home WORKDIR $HOME_DIR # Set up for 'gamelift' user RUN useradd -m gamelift && \ echo "gamelift ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers && \ chown -R gamelift:gamelift $HOME_DIR # Add permissions to game build RUN chmod +x ./$GAME_EXECUTABLE USER gamelift # Check directory before starting the container RUN ls -lhrt . # Check path before starting the container RUN echo $PATH # Start the game build ENTRYPOINT ["/bin/sh", "-c", "./$GAME_EXECUTABLE", "$LAUNCH_PARAMS"]

Transférer une image de conteneur vers Amazon ECR

Après avoir créé une image de conteneur pour le déploiementAmazon GameLift Servers, stockez-la dans un référentiel public ou privé sur Amazon ECR. Une valeur d'URI est attribuée à ce référentiel, qui Amazon GameLift Servers permet de prendre un instantané de l'image en vue de son déploiement sur un parc de conteneurs.

Note

Si vous ne possédez pas encore de référentiel privé Amazon ECR, créez-en un.

Pour transférer l'image de votre conteneur vers Amazon ECR
  1. Obtenez vos informations d'identification Amazon ECR. Avant de transférer une image de conteneur vers Amazon ECR, vous devez d'abord acquérir vos AWS informations d'identification sous forme temporaire et les fournir à Docker. Docker a besoin de ces informations d'identification pour se connecter.

    [~/work/glc]$ aws ecr get-login-password --region us-west-2 | docker login --username AWS --password-stdin aws_account_id.dkr.ecr.us-west-2.amazonaws.com WARNING! Your password will be stored unencrypted in /home/user-name/.docker/config.json. Configure a credential helper to remove this warning. See https://docs.docker.com/engine/reference/commandline/login/#credentials-store Login Succeeded
  2. Copiez l'URI du référentiel privé Amazon ECR que vous souhaitez utiliser.

  3. Appliquez une balise Amazon ECR à l'image de votre conteneur.

    [~/work/glc]$ docker tag <IMAGE ID from above> <Amazon ECR private repository URI>:<optional tag>
  4. Transférez l'image de votre conteneur vers Amazon ECR

    [~/work/glc]$ docker image push <Amazon ECR private repository URI>