【Minecraft】Docker を使った Spigot 鯖の構築手順

■ 目次


 

1. はじめに

オンプレミス環境を想定していますが、クラウドサービス内でも構築可能です。
その場合は、インストール等のコマンドが多少変わったりします。(随時ググってください。)
ゴールとしては、Docker コンテナの中で Minecraft サーバーを稼働して、ホストの中で Nginx を動作させます。

 

2. 事前準備

2.1. オンプレミスの場合のみ

SELinux と Firewall は無効にします(必要な場合は、別途準備が必要です)。
 

2.2. ポート公開一覧

  • 80 : Certbot を実行する際に必須
  • 443 : HTTPS ポート
  • 25565 : Minecraft ポート

 

3. 環境構築

随時自分にあった物を入れてください。

3.1. 必要パッケージのインストール

  1. システムのアップデート
  1. 必要なパッケージのインストール
      • Python 3 系統
      • Git
      • Nginx
  1. Docker インストールと起動
 

3.2. Docker のセットアップ

  1. Docker バージョン確認
  1. Docker Login をセットアップ
 

3.3. Docker Compose のセットアップ

  1. docker-compose のダウンロード
      • バージョンにあったものをDL -> https://github.com/docker/compose/releases/
  1. アクセス権限を付与
  1. 一般ユーザーでも操作出来るように操作
      • ユーザー名 : ec2-user など
 

3.4. SSL のセットアップ

  1. シンボリックリンクの設定
  1. index.html ファイルを適当な場所に設置
  1. 証明書を取得
 

3.5. Minecraft のセットアップ

  1. docker-compose ファイルの作成
  1. ファイルを定義
 

各項目に対する軽い解説

詳しい説明は、【docker-minecraft-server】を閲覧
  • EULA: “
    • 同意
  • VERSION: “
    • プレイしたいバージョン
  • TYPE: “
    • プレイしたいタイプを選択
  • MAX_MEMORY: “
    • どれだけメモリを割り当てるかを指定

 

4. Minecraft Server コマンド

起動コマンド
停止コマンド

 

5. オプション編

ココからは、完全にオプションです。

5.1. 自動起動/停止の設定

作業とバックアップディレクトリを作成
 
  • 起動スクリプトの準備
    • (使っていない)
 
  • 停止スクリプトの準備
    • (使っていない)
 
  • バックアップスクリプトの準備
 
  • ログの削除スクリプトの準備
 
  • Cron の設定
    • 【0時】と【12時】に再起動
    • 00:00/12:00 : サーバー停止
    • 00:03/12:03 : バックアップ
    • 00:08/12:08 : ログファイルの削除
    • 00:10/12:10 : サーバー起動
 

5.2. Dynmap を HTTPS で見たい

  • HTTPS へ強制リダイレクト用のファイルを準備
 
  • HTTPS ファイルの準備
 

5.3. ルーターが再起動して IP が変わった時の自動化

 

5.4. NewRelic の導入手順

  • docker ファイルの準備
 
  • ライセンスキー用のファイルを準備
 
  • docker-compose の編集