Docker MinecraftのPaperサーバーのJavaバージョンを11にする

[Minecraft]:https://www.minecraft.net/ja-jp
[Minecraft Education Edition]:https://education.minecraft.net
[MakeCode for Minecraft]:https://minecraft.makecode.com
[Minecraft for Windows 10]:https://www.microsoft.com/ja-jp/p/minecraft-for-windows-10/9nblggh2jhxj?activetab=pivot:overviewtab
[Docker Desktop]:https://www.docker.com/products/docker-desktop
[Paper]:https://papermc.io
[Tuinity]:https://github.com/Spottedleaf/Tuinity
[Yatopia]:https://yatopiamc.org
[Forge]:http://www.minecraftforge.net/wiki/
[Fabric]:https://fabricmc.net/use/


こんな通知が来た

ヾ(・ω<)ﾉ"　三三三●　ⅱⅲ コロコロ♪

関連記事:
[docker経由でMinecraft資源(Spigot)サーバーを立てる](https://qiita.com/dozo/items/c68d1c8d955f04c657fa)
[docker経由でMinecraft資源(Spigot)サーバーを立てる(2)](https://qiita.com/dozo/items/392fceb255ac55ce501b
)

追記(令和3年2月10日)
latestバージョンのjavaが11に変更されたので、
デフォルトのままで良くなっている
使用するタグは以下のリンクを参照のこと
https://github.com/itzg/docker-minecraft-server/blob/master/README.md#versions

すでに使用中の場合はpullすればおｋ

```
$ docker pull itzg/minecraft-server
```

------------------- ↓ 余談はここから ↓-------------------




```shell-session
 ************************************************************
 * WARNING - YOU ARE RUNNING AN OUTDATED VERSION OF JAVA.
 * PAPER WILL STOP BEING COMPATIBLE WITH THIS VERSION OF
 * JAVA WHEN MINECRAFT 1.17 IS RELEASED.
 *
 * Please update the version of Java you use to run Paper
 * to at least Java 11. When Paper for Minecraft 1.17 is
 * released support for versions of Java before 11 will
 * be dropped.
 *
 * Current Java version: 1.8.0_212
 *
 * Check this forum post for more information:
 * https://papermc.io/java11
 ************************************************************
```

https://papermc.io/forums/t/java-11-mc-1-17-and-paper/5615

現在利用している[Paper]サーバーのJavaバージョンが8なのだが、
[Minecraft]の1.17(2021リリース予定)で11以上に変える必要があるとのこと。
まだまだ先の話なのでオリジナルのDockerイメージがバージョンアップするまで待つという手もあるが、
せっかくなのでバージョンアップしてみよう。

さて、どうやってアップすればいいのかなと。
Dockerコンテナに潜り込んでJavaをアップデートするのかなと調べてみると、
別のJavaバージョンのタグが用意されていた。

| Tag | Description | Linux |
|:-:|:--|:-:|
|latest	   |Default. Uses Java version 8 update 212   | Alpine Linux  |
| adopt11  | Uses Java version 11 latest update  | Alpine Linux  |

参考: https://github.com/itzg/docker-minecraft-server/issues/676

ってことは、Docker runを打ち直せばいいということかな？


----
------------------- ↓ 本題はここから ↓-------------------

## 事前準備

この辺見てもろて

[docker経由でMinecraft資源(Spigot)サーバーを立てる](https://qiita.com/dozo/items/c68d1c8d955f04c657fa)
[docker経由でMinecraft資源(Spigot)サーバーを立てる(2)](https://qiita.com/dozo/items/392fceb255ac55ce501b
)


## 別タグのdocker imageを実行

リポジトリはこちら
[itzg/minecraft-server](https://hub.docker.com/r/itzg/minecraft-server)

### [Paper]サーバー

Spigotを使っていると、
アイテムがワープしたり消滅したりとネットワーク動作にラグ系の問題が発生する。
それにパッチを当てて軽量化したのが[Paper]
上記リポジトリにはサーバー名を指定するだけで利用する実行環境を変えることができる。


```shell-session
PS C:\>  docker run -d -v ~/minecraft_data:/data -p 25565:25565 -e TYPE=PAPER -e EULA=TRUE -e MAX_WORLD_SIZE=10000 -e DIFFICULTY=normal --name mcp02 itzg/minecraft-server:adopt11
```


### [Tuinity]サーバー

[Paper]サーバーもマルチユーザーではちょっと弱点があるので、
それにさらにパッチを当てて軽量化したのが[Tuinity]

```shell-session
PS C:\>  docker run -d -v ~/minecraft_data:/data -p 25565:25565 -e TYPE=TUINITY -e EULA=TRUE -e MAX_WORLD_SIZE=10000 -e DIFFICULTY=normal --name mct01 itzg/minecraft-server:adopt11
```

### その他カスタムサーバー

[Paper]や[Tuinity]をフォークしたサーバーも存在する。
使い方は基本的に一緒なので、列挙だけしておこう。

* [Purpur](https://purpur.pl3x.net/)
* [Yatopia]
* [Origami](https://github.com/Minebench/Origami)
* [EmpireCraft](https://github.com/starlis/empirecraft)

eパラメータを以下に設定すればよい

`TYPE=CUSTOM` `CUSTOM_SERVER=URLまたはファイル名`

```shell-session
PS C:\>  docker run -d -v ~/minecraft_data:/data -p 25565:25565 -e TYPE=CUSTOM -e CUSTOM_SERVER=https://ci.codemc.io/job/YatopiaMC/job/Yatopia/job/ver%252F1.16.5/lastSuccessfulBuild/artifact/target/yatopia-1.16.5-paperclip-b3.jar  -e EULA=TRUE -e MAX_WORLD_SIZE=10000 -e DIFFICULTY=normal --name yat01 itzg/minecraft-server:adopt11
```