🦍

Minecraft Backup Server を Docker で構築する

2024/08/10に公開

コンテナ型仮想環境で、マインクラフト用バックアップサーバーを構築します。使用するコンテナイメージは Docker 社が運営する公開レジストリの Docker Hub から取得します。

🛠️ 事前準備

デバイスやソフトウェアは以下を用いる。

1. Docker のインストール

以下の記事より Docker のインストールを済ませておく。
https://zenn.dev/mesgory/articles/e4a707b0c31c76

2. データ格納用ディレクトリの用意

データを永続的に管理するためのディレクトリを用意する。

🖥️ terminal
# データ格納用ディレクトリの作成(存在しない場合)
mkdir -v /media/shared/minecraft

# カレント・ディレクトリの変更
cd /media/shared/minecraft

🎭 作業手順

1. Docker リポジトリのセットアップ

Compose ファイル を編集する。(環境変数は公式ドキュメントを参照)

🖥️ terminal
# Compose ファイルの作成
vi ./compose.yaml
📄 compose.yaml
services:
  # =================================================== #
  #   Backup container service for Minecraft            #
  # =================================================== #
  backups:
    container_name: mc_backup
    image: kaiede/minecraft-bedrock-backup
    tty: true
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - ./backups:/backups
      - ./:/server
    environment:
      TZ: "Asia/Tokyo"
    restart: unless-stopped

2. バックアップ用ディレクトリの作成

バックアップ保存先のディレクトリと設定ファイルを準備する。

🖥️ terminal
# ディレクトリを作成(-v:作成したディレクトリの情報を表示)
mkdir -v ./backups

# 設定ファイルを作成
touch ./backups/config.yml
vi ./backups/config.yml
📄 config.yml
containers:
  # 統合版
  bedrock:
    # Bedrock Server
    - name: mc_bedrock
      worlds:
        - /server/bedrock/worlds/lv19132
  # Java版
  java:
    # Java Server - Vanilla, Official
    - name: mc_vanilla
      worlds:
        - /server/vanilla/lv25565
    # Mod Server (Paper)
    - name: mc_paper
      worlds:
        - /server/paper/lv30066
    # Pulgin Server (Fabric)
    - name: mc_fabric
      worlds:
        - /server/fabric/lv30067
schedule:
  interval: 12h
trim:
  trimDays: 2
  keepDays: 14
  minKeep: 2

3. Docker コンテナの起動

Compose を使ってアプリケーションを起動する。

🖥️ terminal
# コンテナの構築と起動(バックグラウンド実行)
docker compose up -d

⛳️ 動作確認

1. Docker コンテナの稼働状況を確認

コンテナのログを確認する。

🖥️ terminal
# Docker のログを出力(Ctrl + C で終了)
docker logs -f mc_backup

2. Minecraft のアーカイブ状況を確認

バックアップ用ディレクトリにワールドデータが保存されることを確認する。

Discussion