再起動でダウンしたminecraft-spigotサーバーの復旧(docker)

仲間内で遊ぶ用のminecraft(spigot)サーバーを
dockerにて稼働させてましたが、
今日、連携しているDiscordを見たところ
なんか自動再起動から立ち上がってきてない模様…

いつもの再起動ログ
今朝の再起動ログ。stoppedから上がってこない…

このサーバーはDockerでサクっと立てたSpigotサーバー。
プラグインもDiscord連携とDynmapくらいで、
不安定になる要素はあんまりない気がするけど…?

とりあえずログを参照します。

docker logs -f <コンテナ名>
Error: Invaild or corrupt jarfile spigot_server-1.16.5.jarの表記

ログを見た感じ、「Stating the Minecraft server…」が出た直後に
再起動となり、繰り返してる感じ。
これじゃわっかんねえなぁ…と思ってたら、数回に一度
「Invaild or corrupt jarfile」の文字が。
あ、これ稼働するjar自体が逝ってるっぽい…

赤枠が最新jar。明らかに容量が少ない(1859byte)

あァ…明らかにダメそうですね…
しかしまぁ、なんでいきなり…?

「failed to download from https://cdn.getbukkit.org/spigot/spigot-1.16.5.jar」

さらにログを漁っていくと、
どうやら最新の1.16.5のダウンロードに失敗している模様。
確かにURLにアクセスしてみたら、なにやら制限されてました。

で、ダウンロードしようとした時のゴミjarが発生し、
そのjarから起動しようとして失敗したと。


対処法

ひとまずデータは永続化処理済みのため、
一旦docker側で削除⇒バージョン指定で再作成、という手順でいきます。

docker stop <コンテナ名>
docker rm <コンテナ名>
docker run -d -e EULA=TRUE -p 25565:25565 -p 8123:8123 -e TYPE=SPIGOT -e VERSION=1.16.4 -v /home/ubuntu/mcserver_docker/data:/data --name <コンテナ名> --restart always itzg/mi
necraft-server

太字部分が追加したところ。
これでとりあえず起動するようにはなりました。

復旧メッセ。あ、among usお誘いお待ちしてます(?

getbukkit側の復旧を待って再度コンテナ作成、になるかと思います。
(同じようなトラブルは今後も起こりそうなので、
 しばらく自動アップデート切ってもいいかもだけど)


と、いうことで実はminecraftサーバーも立ててます。
ホワイトリスト制なので興味がある方は自分までご連絡を。