Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Creación de una imagen de contenedor para Amazon GameLift Servers
En este tema se describe cómo crear una imagen de contenedor con el software de servidor de juegos para su uso con Amazon GameLift Servers. Una imagen de contenedor de servidor de juegos incluye el ejecutable del servidor de juegos, así como cualquier dependencia que este necesite para ejecutarse. Las imágenes de contenedor de servidor de juegos se utilizan con una solución de alojamiento de contenedores administrados de Amazon GameLift Servers. Para obtener más información sobre cómo crear la solución completa, consulte:
Complete las siguientes tareas para preparar la imagen de contenedor del servidor de juegos para su implementación en una flota de contenedores de Amazon GameLift Servers. Antes de iniciar estas tareas, termine de integrar el código del servidor de juegos con el SDK del servidor de Amazon GameLift Servers.
Temas
Creación de una imagen de contenedor del servidor de juegos
Siga estas instrucciones cuando trabaje en una plataforma basada en Linux o utilice Windows Subsystem para Linux (WSL) con Docker instalado.
Creación de una imagen de contenedor del servidor de juegos
-
Prepare un directorio de trabajo con el software de servidor de juegos. En una máquina local, cree un directorio de trabajo para organizar los archivos del contenedor del servidor de juegos. La imagen de contenedor utiliza esta estructura de archivos al implementar el contenedor en los recursos de Amazon GameLift Servers para el alojamiento. Por ejemplo:
[~/]$mkdir -p work/glc/gamebuild && cd work && find .. ./glc ./glc/gamebuildnota
Si estás probando esta función y aún no tienes una versión de servidor de juegos que funcione, prueba nuestro servidor de juegos de muestra SimpleServer
, que está disponible en GitHub. Cree un nuevo archivo Dockerfile utilizando la plantilla proporcionada.
Siga las instrucciones de la plantilla de Dockerfile para actualizarla para su propio uso.
Actualice la imagen base como corresponda.
Establezca variables de entorno para la compilación del servidor de juegos.
Compile la imagen de contenedor. Ejecute la
docker buildespecificando el nombre de su propio repositorio. Por ejemplo:[~/work/glc]$docker build -t<local repository name>:<optional tag>.Puedes ver tus repositorios e imágenes IDs con el
docker imagescomando, tal y como se muestra en este ejemplo:
Esta plantilla contiene las instrucciones mínimas que necesita un contenedor de servidor de juegos para poder utilizarse en una flota de Amazon GameLift Servers. Modifique el contenido como sea necesario para el servidor de juegos.
# 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"]
Inserción de una imagen de contenedor en Amazon ECR
Una vez que haya creado una imagen de contenedor para su implementación en Amazon GameLift Servers, almacene la imagen en un repositorio público o privado de Amazon ECR. A este repositorio se le asigna un valor de URI, que Amazon GameLift Servers utiliza para tomar una instantánea de la imagen para la implementación en una flota de contenedores.
nota
Si aún no tiene un repositorio privado de Amazon ECR, debe crear uno.
Inserción de la imagen de contenedor en Amazon ECR
-
Obtenga sus credenciales de Amazon ECR. Antes de insertar una imagen de contenedor en Amazon ECR, primero debe adquirir sus credenciales de AWS de forma temporal y proporcionárselas a Docker. Docker necesita estas credenciales para iniciar sesión.
[~/work/glc]$aws ecr get-login-password --regionus-west-2| docker login --username AWS --password-stdinaws_account_id.dkr.ecr.us-west-2.amazonaws.com.rproxy.govskope.caWARNING! 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 Copie el URI del repositorio privado de Amazon ECR
que desea utilizar. Aplique una etiqueta de Amazon ECR a la imagen de contenedor.
[~/work/glc]$docker tag<IMAGE ID from above><Amazon ECR private repository URI>:<optional tag>Inserción de la imagen de contenedor en Amazon ECR
[~/work/glc]$docker image push<Amazon ECR private repository URI>