As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Criar uma imagem de contêiner para o Amazon GameLift Servers
Este tópico descreve como criar uma imagem de contêiner com o software do servidor de jogos para usar com o Amazon GameLift Servers. Uma imagem de contêiner de servidor de jogos inclui o executável do servidor de jogos e todas as dependências necessárias para execução. As imagens de contêiner do servidor de jogos são usadas com uma solução de hospedagem de contêineres gerenciada pelo Amazon GameLift Servers. Para obter detalhes sobre como criar a solução completa, consulte:
Conclua as tarefas a seguir para preparar a imagem do contêiner do servidor de jogos para implantação em uma frota de contêineres do Amazon GameLift Servers. Antes de iniciar essas tarefas, conclua a integração do código do servidor do jogo com o SDK do servidor do Amazon GameLift Servers.
Tópicos
Crie uma imagem de contêiner de servidores de jogos
Siga estas instruções ao trabalhar em uma plataforma baseada em Linux ou ao usar o Windows Subsystem for Linux (WSL) com o Docker instalado.
Para criar uma imagem de contêiner de servidores de jogos
-
Prepare um diretório de trabalho com seu software de servidor de jogos. Em uma máquina local, crie um diretório de trabalho para organizar os arquivos do contêiner do servidor de jogos. Sua imagem de contêiner usa essa estrutura de arquivos ao implantar o contêiner em recursos do Amazon GameLift Servers para hospedagem. Por exemplo:
[~/]$mkdir -p work/glc/gamebuild && cd work && find .. ./glc ./glc/gamebuildnota
Se você está testando esse recurso e ainda não tem um servidor de jogo em funcionamento, experimente nosso servidor de jogos de amostra SimpleServer
,, que está disponível em GitHub. Crie um novo Dockerfile usando o modelo fornecido.
Siga as instruções no modelo do Dockerfile para atualizá-lo para seu próprio uso.
Atualize a imagem base conforme necessário.
Defina as variáveis de ambiente para a versão do seu servidor de jogos.
Crie a imagem do contêiner. Execute o
docker build, especificando o nome do seu próprio repositório. Por exemplo:[~/work/glc]$docker build -t<local repository name>:<optional tag>.Você pode visualizar seus repositórios e imagens IDs usando o
docker imagescomando, conforme ilustrado neste exemplo:
Este modelo contém as instruções mínimas que um contêiner de servidor de jogo precisa para ser usado em uma frota do Amazon GameLift Servers. Modifique o conteúdo conforme necessário para o seu servidor de jogos.
# 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"]
Envie uma imagem de contêiner no Amazon ECR
Depois de criar uma imagem de contêiner para implantação do Amazon GameLift Servers, armazene a imagem em um repositório público ou privado no Amazon ECR. Esse repositório recebe um valor de URI, que é usado pelo Amazon GameLift Servers para tirar um instantâneo da imagem para implantação em uma frota de contêineres.
nota
Se você ainda não tem um repositório privado do Amazon ECR, crie um.
Para enviar sua imagem de contêiner no Amazon ECR
-
Obtenha as credenciais do Amazon ECR. Antes de enviar uma imagem de contêiner para o Amazon ECR, primeiro adquira suas credenciais do AWS de forma temporária e forneça-as ao Docker. O Docker precisa dessas credenciais para fazer login.
[~/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 o URI do repositório privado do Amazon ECR
que você deseja usar. Aplique uma tab do Amazon ECR à sua imagem de contêiner.
exemplo
[~/work/glc]$docker tag<IMAGE ID from above><Amazon ECR private repository URI>:<optional tag>Envie sua imagem de contêiner no Amazon ECR
exemplo
[~/work/glc]$docker image push<Amazon ECR private repository URI>