Docker版Minecraft Bedrock Dedicated Serverをバックアップする

2022/05/02

Linux Minecraft OracleCloud

t f B! P L

最近、MinecraftのBedrock Serverで遊んでおります。子供たちと。

万が一データをロストするとそれなりにショックが大きいのでバックアップはきちんとしておこう。

このサーバはOracle Cloud(OCI)で動いているので、OCI上のバックアップ機能を使うのが吉。

その方法は以下の記事に書いた。



それに加えて、明示的に静止点を設けるために個別にバックアップを行うこととする。

Docker版Minecraftサーバのバックアップ機能もコンテナで公開されているので使わせてもらう。


そもそものMinecraftのサーバを立てる方法はこちら。



ちなみにサーバのバージョンの上げ方はdockerを再起動するだけ。

"latest"タグを付けておけばOK。


今回はこのdocker-compose.ymlにバックアップ用コンテナを追記する。


version: '3.4'
services:
  bds:
    container_name: bds
    restart: always
    image: itzg/minecraft-bedrock-server:latest
    environment:
      SERVER_NAME: SERVER1
      EULA: "TRUE"
      GAMEMODE: survival
      DIFFICULTY: normal
      LEVEL_NAME: MY WORLD
      TZ: Asia/Tokyo
    ports:
      - 19132:19132/udp
    volumes:
      - /docker/bds/data:/data    #サーバディレクトリ
    stdin_open: true
    tty: true
    
### 追記ここから
  backup:
    container_name: bds_backup
    image: kaiede/minecraft-bedrock-backup
    restart: always
    tty: true
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - /docker/bds/backups:/backups    #バックアップディレクトリ
      - /docker/bds/data:/server      #サーバディレクトリ
    depends_on:
      - "bds"
    environment:
      TZ: Asia/Tokyo
### 追記ここまで

ポイントはサーバのディレクトリを共有しておくこと。

上記だと「/docker/bds/data」がサーバのディレクトリ。

次にバックアップの設定ファイル(config.yml)をバックアップディレクトリに置く。

上記だと「/docker/bds/backups/config.yml」だ。

内容は以下。

containers:
  bedrock:
    - name: bds
      worlds:
        - "/server/worlds/MY WORLD"
schedule:
  interval: 12h
trim:
  trimDays: 2
  keepDays: 14
  minKeep: 2


設定はわざわざ書かなくても分かると思うけど、

"worlds"がマイクラの世界名。上記でいうところの「LEVEL_NAME」。

"interval"がバックアップ取得の間隔。

"trim"がバックアップする保存日数や世代数の設定。

上記だとたぶん12時間ごとにバックアップを取得し保存日数は14日間かな?


その後、コンテナを起動して、ログを確認するとバックアップが取得されていることがわかる。


$ docker logs bds_backup
DEBU[0000] Using /backups to match uid and gid
DEBU[0000] Resolved UID=0 from match path
DEBU[0000] Resolved GID=0 from match path
[18:59:33.332][info    ] Initializing Bedrockifier Daemon
[18:59:33.334][info    ] Loading Configuration From: /backups/config.yml
[18:59:33.340][info    ] Configuration Loaded, Entering Event Loop...
[18:59:33.343][info    ] Host PTY Handle Opened: /dev/pts/1 (3)
[18:59:33.354][info    ] Child PTY Handle Opened: /dev/pts/1 (4)
[18:59:33.355][info    ] Checking for servers that might not be cleaned up
[18:59:33.355][info    ] Backup Interval: 43200.0 seconds
[18:59:33.356][info    ] Starting Full Backup
[18:59:36.585][info    ] Starting Backup of worlds for: bds
[18:59:36.590][info    ] Backing Up: MY WORLD
[18:59:37.636][info    ] Backed up as: MY WORLD.20220501-185936.mcworld
[18:59:37.638][info    ] Backups for bds finished successfully...
[18:59:37.688][info    ] Performing Trim Jobs
[18:59:37.734][info    ] Full Backup Completed

バックアップ成功。

バックアップディレクトリに".mcworld"というファイルができているはず。


リストア方法。

やったことないけど、以下のような流れだそうな。

  1. コンテナを止める
  2. サーバフォルダの"worlds"フォルダに移動
  3. "世界名"のフォルダを別名に変更
  4. 再度、"世界名"のフォルダを作成し、移動
  5. バックアップしたmcworldファイルをunzipする
  6. コンテナ起動
  7. 2.で別名保存したフォルダを削除

バックアップからデータを戻すことはあまりしたくないのだけど、

いざという時はバックアップしておいて損ではないので

設定できるのであれば設定しておくべき。


以下、参考。

https://github.com/Kaiede/Bedrockifier/wiki

検索

Blog Archive

Popular Posts

About Me

自分の写真
性別:男
年齢:ついに40over
趣味:Snowboard、パソコン、iPhone、子育て

仕事:ユー子の社内SEとしてサーバ、NW等のインフラ全般をやってます

日々生活していく中で思ったことなどをつらつらと書いていきます。

どうぞよろしく!

ブログランキング

ブログランキング・にほんブログ村へ

QooQ