View a markdown version of this page

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

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 GameLift Serveurs Amazon

Cette rubrique explique comment créer une image de conteneur avec le logiciel de votre serveur de jeu à utiliser avecAmazon 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 du 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 Linux-based plate-forme 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 destinées à l'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 si nécessaire.

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

  4. Créez l'image du conteneur. Exécutez ledocker build, en spécifiant votre propre nom de référentiel. Par exemple :

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

    Vous pouvez consulter vos référentiels et les ID de vos images à 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 utilisable 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"]

Envoyer une image de conteneur vers Amazon ECR

Après avoir créé une image de conteneur à déployerAmazon GameLift Servers, stockez-la dans un référentiel public ou privé d'Amazon ECR. Une valeur d'URI est attribuée à ce référentiel, Amazon GameLift Servers qui permet de prendre un instantané de l'image pour le déploiement sur une flotte 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, commencez par obtenir vos AWS informations d'identification sous forme temporaire et fournissez-les à 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 étiquette Amazon ECR à l'image de votre conteneur.

    Exemple
    [~/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

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