Dockerのインストール手順とNakama Serverのインストール方法

この記事では、Dockerをインストールして、オープンソースのゲームサーバー「Nakama Server」をインストールする方法について書いていきます。

環境

今回のインストールを試した環境とバージョンは以下のとおりです

  • Windows 10 64ビット Pro
  • Docker Desktop 4.11.1

Dockerのインストール手順

インストーラーを入手

インストーラーは以下のページから取得します。

「Docker Desktop for Windows」をクリックすると、ダウンロードが開始します

そしてダウンロードした「Docker Desktop Installer.exe」を実行します。

インストール

なお、システム要件としては、以下のとおりです

  • Windows 10 64ビット
  • 4GBのシステムメモリ
  • ハードウェア仮想化が BIOS設定で有効とされていること

最後の条件がよくわかりませんが、普通にWindowsが動いていれば大丈夫なのかなと…

まずは基本設定のようです。

WSL2は有効にした方が良さそうなので、そのままにしておきます。ショートカットも不要なら後で削除すればいいので、そのまま「OK」で良いのかなと…

するとインストールが始まるので、しばし待ちます…

インストールが完了すると「Close and restart」が表示されるので、これをクリックしてPCを再起動します

インストールが完了すると「Close and restart」が表示されるので、これをクリックしてPCを再起動します

そして再起動が完了するとDockerが立ち上がって、同意を求められるので「I accept the terms」にチェックを入れて、「Accept」をクリックします

しばらくすると「WSL 2 installation is incomplete.」と表示されることがあります。

WSL 2のインストール

「WSL 2 installation is incomplete.」と表示される場合は、WSLの更新プログラムが必要とのことなので、ダイアログのリンク「https://aka.ms/wsl2kernel」をクリックします

そしてリンク先の手順通り、WSLの更新プログラムのインストーラーをダウンロードして、インストールを行います。(wsl_update_x64.msiを実行する)

「Next」ボタンをクリックして Linuxカーネルをインストールします。

「Finish」ボタンを押してインストールを完了します

WSL 2の設定(※これは不要かもしれません)

先程のページ (https://aka.ms/wsl2kernel) の指示に従い、PowerShellを起動します

そして以下のコマンドを実行します

Power Shell
> wsl --set-default-version 2

実行すると、

WSL 2 との主な違いについては、https://aka.ms/wsl2 を参照してください
この操作を正しく終了しました。

と表示されれば、WSL 2が有効になる…ようです

このウィンドウが残っていれば「Restart」でDockerを再起動します

残っていなければ、デスクトップのショートカットからDockerを起動すると…

このような画面が表示されれば、Dockerが動いていそうな感じです

Nakama Serverのインストール

オープンソースのゲーム用サーバー「Nakama Server」をインストールします

以下のページを参考にしました

インストール場所は、とりあえずデスクトップに作成するとします

デスクトップに「nakama」フォルダを作成し、「docker-compose.yml」を作成します

version: '3'
services:
  cockroachdb:
    image: cockroachdb/cockroach:latest-v20.2
    command: start-single-node --insecure --store=attrs=ssd,path=/var/lib/cockroach/
    restart: "no"
    volumes:
      - data:/var/lib/cockroach
    expose:
      - "8080"
      - "26257"
    ports:
      - "26257:26257"
      - "8080:8080"
  nakama:
    image: registry.heroiclabs.com/heroiclabs/nakama:3.12.0
    entrypoint:
      - "/bin/sh"
      - "-ecx"
      - >
        /nakama/nakama migrate up --database.address root@cockroachdb:26257 &&
        exec /nakama/nakama --name nakama1 --database.address root@cockroachdb:26257 --logger.level DEBUG --session.token_expiry_sec 7200 --metrics.prometheus_port 9100        
    restart: "no"
    links:
      - "cockroachdb:db"
    depends_on:
      - cockroachdb
      - prometheus
    volumes:
      - ./:/nakama/data
    expose:
      - "7349"
      - "7350"
      - "7351"
      - "9100"
    ports:
      - "7349:7349"
      - "7350:7350"
      - "7351:7351"
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:7350/"]
      interval: 10s
      timeout: 5s
      retries: 5
  prometheus:
    image: prom/prometheus
    entrypoint: /bin/sh -c
    command: |
      'sh -s <<EOF
        cat > ./prometheus.yml <<EON
      global:
        scrape_interval:     15s
        evaluation_interval: 15s
      scrape_configs:
        - job_name: prometheus
          static_configs:
          - targets: ['localhost:9090']
        - job_name: nakama
          metrics_path: /
          static_configs:
          - targets: ['nakama:9100']
      EON
      prometheus --config.file=./prometheus.yml
      EOF'      
    ports:
      - '9090:9090'
volumes:
  data:

(※最新の設定ファイルは「https://heroiclabs.com/docs/nakama/getting-started/install/docker/」から確認するようお願いします)

そうしたら、docker-compose.yml を作成したフォルダに移動してコマンドプロンプトを開き、

コマンドプロンプト
> docker compose up

を実行すると、Nakama Server のインストールが開始します。

また、インストール中にアクセス許可を求められる場合は「アクセス許可」をクリックします。

Dockerに「nakama」が表示されて「Running」となっていればインストール完了です。

実際に動いているかどうかは Nakama console で確認できます

Usernameは「admin」
Passwordは「password」で入れます

Godot で Nakama Server にアクセスする

こちらのページ

によると、Nakama Server 用の Godotクライアント(ライブラリ)が用意されているのですが、どうもうまくアクセスできませんでした…

公式で Nakama にアクセスするクライアントが用意されている

方法がわかりましたら、今後更新していく予定です

Godotからの Nakama Server への接続は、この動画が詳しいので、参考になりそうです。