컨테이너 빌드
Learn how to package your game server as a Docker container image for deployment.
읽는 시간 2분최근 업데이트: 21일 전
컨테이너는 소프트웨어와 모든 종속 관계를 하나의 단위로 패킹하는 방법입니다. Multiplay Hosting 컨테이너 빌드를 사용하면 게임 서버와 그 종속 관계를 패키징하고 컨테이너를 빌드한 다음 Multiplay Hosting 컨테이너 레지스트리에 푸시할 수 있습니다. 빌드를 생성할 때 컨테이너 이미지를 선택하면 Unity Dashboard에서 컨테이너 빌드를 생성할 수 있습니다. 빌드 생성 마법사를 따라 서비스 계정을 추가하고, 레지스트리를 추가하고, 이미지를 선택하면 됩니다. 컨테이너 이미지로 빌드 만들기를 참조하십시오. Multiplay Hosting은
<ImageName>:<ImageTag>docker tag <ImageName>:<ImageTag> registry.multiplay.com/4818982f-bb28-4c39-9d44-628204b6780e/1ae4de65-849d-4ff1-86fc-1de3bdfbd891/12788:v1
컨테이너 빌드 요구 사항
Multiplay Hosting 빌드를 생성할 때 여러 방법으로 빌드 파일을 업로드할 수 있습니다. 한 가지 방법은 Docker와 Multiplay Hosting 컨테이너 레지스트리를 사용하여 빌드의 컨테이너화된 버전을 업로드하는 것입니다. 하지만 컨테이너화된 빌드를 사용하려면 빌드 컨테이너가 일반적인 요구 사항 외에도 특정 요구 사항을 충족해야 합니다.기본 이미지로 빌드된 컨테이너 생성
linux-build-image 템플릿 컨테이너는 컨테이너 빌드 사용과 관련된 대부분의 추가 요구 사항을 처리합니다. 이 컨테이너는 Dockerfile 상단에FROM unitymultiplay/linux-base-image:<tag>위 예제에서 다음을 수행할 수 있습니다.FROM unitymultiplay/linux-base-image:<tag># copy game files here##copy-game-files-here# for example:##for-example:WORKDIR /gameCOPY --chown=mpukgame . .# set your game binary as the entrypoint##set-your-game-binary-as-the-entrypointENTRYPOINT [ "./gamebinary" ]
- 를 사용할 기본 이미지 버전으로 변경하면 됩니다. 사용할 수 있는 태그 목록은 linux-base-image 태그에서 확인할 수 있습니다.
<tag> - 을 컨테이너 프로세스의 현재 작업 디렉토리로 설정합니다. 프로세스를 실행하거나 파일을 복사하는 모든 작업은 작업 디렉토리와 관련이 있습니다.
WORKDIR - 를 컨테이너가 시작될 때 실행되는 실행 파일로 설정합니다. 이 엔트리포인트는 게임 서버 바이너리여야 합니다.
ENTRYPOINT
간단한 예제는 Simple Game Server Dockerfile을 참고하십시오(GitHub의 Unity Multiplay 예제).
컨테이너 빌드 직접 생성
Dockerfile 파일을 직접 생성하려는 경우, 사용자가 직접 컨테이너가 다음 요구 사항을 충족하는지 확인해야 합니다.| 요구 사항 | 설명 |
| 컨테이너가 |
| 컨테이너에 |
# ========================================================##========================================================-# Unity base image stuff##unity-base-image-stuff------------------# ========================================================##========================================================-FROM ubuntu:20.04 AS mpukRUN addgroup --gid 2000 mpukgame && \ useradd -g 2000 -u 2000 -ms /bin/sh mpukgame && \ mkdir /game && \ chown mpukgame:mpukgame /game && \ apt update && \ apt upgrade && \ apt install -y ca-certificatesUSER mpukgame# ========================================================##========================================================-# Custom game stuff##custom-game-stuff---------------------# ========================================================##========================================================-FROM mpuk AS game# copy game files here##copy-game-files-here# for example:##for-example:WORKDIR /gameCOPY --chown=mpukgame . .# set your game binary as the entrypoint##set-your-game-binary-as-the-entrypointENTRYPOINT [ "./gamebinary" ]
Steam에 업로드된 게임 서버 빌드를 사용하여 컨테이너 빌드 생성
Steam에 업로드된 게임 서버 빌드와 함께 사용할 컨테이너 빌드를 업로드하려면 SteamCMD를 사용하여 컨테이너 이미지를 빌드할 수 있습니다. 다음 코드 블록은 SteamCMD 프로세스를 위한 예제 Dockerfile입니다.# ========================================================##========================================================-# SteamCMD stuff##steamcmd-stuff-----------------------# ========================================================##========================================================-FROM steamcmd/steamcmd:ubuntu-20 AS steamcmdWORKDIR /gameCOPY update.txt /data/update.txtRUN steamcmd +runscript /data/update.txt# if you want to avoid having the update.txt file, use:##if-you-want-to-avoid-having-the-update.txt-file,-use:# RUN steamcmd +force_install_dir /game/<game_name> \##run-steamcmd-+force_install_dir-/game/game_name-# +login anonymous +app_update <steam_appid> validate +quit##+login-anonymous-+app_update-steam_appid-validate-+quit# ========================================================##========================================================-# Unity base image stuff##unity-base-image-stuff------------------# ========================================================##========================================================-FROM ubuntu:20.04 AS mpukRUN addgroup --gid 2000 mpukgame && \ useradd -g 2000 -u 2000 -ms /bin/sh mpukgame && \ mkdir /game && \ chown mpukgame:mpukgame /game && \ apt update && \ apt upgrade && \ apt install -y ca-certificates lib32z1USER mpukgame# ========================================================##========================================================-# Custom game stuff##custom-game-stuff---------------------# ========================================================##========================================================-WORKDIR /gameCOPY --from=steamcmd --chown=mpukgame:mpukgame /game/<game_name> /game/<game_name># set your game binary as the entrypoint##set-your-game-binary-as-the-entrypointENTRYPOINT [ "./game_binary" ]
Server.json 파일
기본 컨테이너 이미지를 사용하는 경우server.jsonserver.json- Linux 컨테이너에서는 환경 변수 안에 있습니다.
$HOME - Windows 컨테이너에서는 환경 변수 안에 있습니다.
$HOMEPATH
server.jsonserver.json