Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Crea un'immagine del contenitore per Amazon GameLift Servers
Questo argomento descrive come creare un'immagine del contenitore con il software del server di gioco con Amazon GameLift Servers cui utilizzarla. L'immagine del contenitore del server di gioco include l'eseguibile del server di gioco e tutte le dipendenze necessarie per l'esecuzione. Le immagini dei container del server di gioco vengono utilizzate con una soluzione di hosting di container Amazon GameLift Servers gestiti. Per i dettagli sulla creazione della soluzione completa, consulta:
Completa le seguenti attività per preparare l'immagine del container del server di gioco per la distribuzione in una flotta di Amazon GameLift Servers container. Prima di iniziare queste attività, completa l'integrazione del codice del server di gioco con l'SDK del Amazon GameLift Servers server.
Argomenti
Crea un'immagine del contenitore del server di gioco
Segui queste istruzioni mentre lavori su una piattaforma basata su Linux o usi Windows Subsystem for Linux (WSL) con Docker installato.
Per creare un'immagine del contenitore del server di gioco
-
Prepara una directory di lavoro con il software del tuo server di gioco. Su un computer locale, crea una directory di lavoro per organizzare i file per il contenitore del tuo server di gioco. L'immagine del contenitore utilizza questa struttura di file quando distribuisce il contenitore su Amazon GameLift Servers risorse per l'hosting. Per esempio:
[~/]$
mkdir -p work/glc/gamebuild && cd work && find .. ./glc ./glc/gamebuild
Nota
Se stai provando questa funzionalità e non hai ancora un server di gioco funzionante, prova il nostro server di gioco di esempio SimpleServer
, disponibile su GitHub. Crea un nuovo Dockerfile utilizzando il modello fornito.
Segui le istruzioni nel modello Dockerfile per aggiornarlo per uso personale.
Aggiorna l'immagine di base secondo necessità.
Imposta le variabili di ambiente per la build del tuo server di gioco.
Crea l'immagine del contenitore. Esegui il
docker build
, specificando il nome del tuo repository. Per esempio:[~/work/glc]$
docker build -t<local repository name>
:<optional tag>
.È possibile visualizzare i repository e le immagini IDs utilizzando il
docker images
comando, come illustrato in questo esempio:
Questo modello contiene le istruzioni minime di cui un contenitore di server di gioco ha bisogno per essere utilizzabile in una Amazon GameLift Servers flotta. Modifica il contenuto in base alle esigenze del tuo server di gioco.
# 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"]
Invia l'immagine di un contenitore ad Amazon ECR
Dopo aver creato un'immagine del contenitore per la distribuzioneAmazon GameLift Servers, archivia l'immagine in un repository pubblico o privato in Amazon ECR. A questo repository viene assegnato un valore URI, che viene Amazon GameLift Servers utilizzato per scattare un'istantanea dell'immagine per la distribuzione in una flotta di container.
Nota
Se non disponi ancora di un repository privato Amazon ECR, creane uno.
Per inviare l'immagine del contenitore ad Amazon ECR
-
Ottieni le tue credenziali Amazon ECR. Prima di inviare un'immagine del contenitore ad Amazon ECR, acquisisci AWS le tue credenziali in formato temporaneo e forniscile a Docker. Docker necessita di queste credenziali per accedere.
[~/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 Copia l'URI del repository privato Amazon ECR
che desideri utilizzare. Applica un tag Amazon ECR all'immagine del contenitore.
[~/work/glc]$
docker tag<IMAGE ID from above>
<Amazon ECR private repository URI>
:<optional tag>
Invia l'immagine del contenitore ad Amazon ECR
[~/work/glc]$
docker image push<Amazon ECR private repository URI>