Docker/Discord を利用した Minecraft Manager
注意:
- 指示がなければ、
manager-containerがカレントディレクトリです - 変数
${****}はそのまま実行可能ですが<****>は随時 補足に合わせて書き換えてください
./script/download/java.sh <Tag><Tag>のところはeclipse-temurin Tags | Docker Hubより探してください
docker imagesに正しい Tag のmc_javaがあれば成功です
今回は21-jdk-jammy(minecraft ver1.21.3 用)を使用して話を進めていきます
Note
./script/download_server.sh <Version> <API Token>
# assets/*に変更があったとき
./script/download_server.sh rebuild<Version>のところは minecraft version を書いてください
レート制限に引っかかる場合、<API Token>のところに GitHub API Token を書いてください
download/<Version>/にダウンロードされたバイナリを、サーバーディレクトリにコピーしてください。
Warning
上記の機能はサポートされていません
#! Java Arguments
java="21"
jvm_arg="-Xms2G -Xmx2G"
#! Server Arguments
server_jar="server.jar"
#server_arg="--forceUpgrade --eraseCache"
#! Directory Config
server_dir="/home/atomu/servers/example_1.21.3"
backup_dir="/home/atomu/backup/example_1.21.3"
custom_dir="/home/atomu/custom"
#! SSH Config
ssh_user=""
ssh_port=""
#! Server Operation Script
script_boot=""
script_backup=""
script_backup_rsync_arg=""
script_backup_rsync_command=""
script_restore=""
#! Discord Bot Config
discord_bot_token=""
discord_admin_role=""
discord_webhook_url=""
#! Rcon/Console Config
rcon_port=""
rcon_password=""上記のようにすべて埋めた<Server>.envをconfig/に入れてください
(example.envを Copy&Modify がおすすめ)
各項目の説明:
| Key | Value | Required |
|---|---|---|
| java | Image 作成のときに使用した TAG | true |
| jvm_arg | java の引数 | true |
| server_jar | server.jar の名前を記入 | true |
| server_arg | server.jar の引数 | false |
| server_dir | サーバーディレクトリ | true |
| backup_dir | サーバーディレクトリのバックアップ先 | false |
| custom_dir | 特殊マウントディレクトリ | false |
| ssh_user | docker を実行している User | false |
| ssh_port | docker を実行してる User へのアクセス Port | false |
| script_boot | server を起動するスクリプトへのフルパス | false |
| script_backup | server をバックアップするスクリプトへのフルパス | false |
| script_backup_rsync_arg | server をバックアップするスクリプトへ引数 | false |
| script_backup_rsync_command | server をバックアップするスクリプトへ引数 | false |
| script_restore | server のデータ復旧するスクリプトへ引数 | false |
| discord_bot_token | discord Bot の Token | false |
| discord_admin_role | discord からコマンドを実行できるロール ID | false |
| discord_webhook_url | discord へメッセージを送る Webhook URL | true |
| rcon_port | minecraft server への Rcon アクセスポート | false |
| rcon_password | minecraft server への Rcon アクセスパスワード | false |
Note
server_arg=...は必要な際にコメントアウトを外してください
./script/boot_server.sh <Server><Server>にはサーバー名(config ディレクトリ内の<Server>.env)を入れると起動します
docker psにあれば、ログはdocker logs -f <Server>_mcで確認できるはずです
なければ、latest.logを確認します
Important
アタッチ(接続)はdocker attach -it <Server>_mc
デアタッチ(切断)はctrl+P ctrl+Q
接続した際過去のログは出ないので注意してください。
readonly SSH_IDENTITY="${HOME}/.ssh/minecraft-manager"
readonly CONFIG_DIR="${PWD%/*}/config"SSH_IDENTITY: minecraft-manager で使用される SSH-key
CONFIG_DIR: discord-boot.shで使用するservers.jsonへのフルパス
Tip
基本はデフォルトで問題ありません。
./script/discord-boot.sh <Server><Server>にはサーバー名(config ディレクトリ内の<Server>.env)を入れると起動します
ログはdocker logs -f <Server>_botで確認できるはずです
DiscordBot には以下の権限が必要です
- Oauth2
- bot
- General Permissions
- Manage Webhooks
- View Channels
- Text Permissions _ [x] Send Messages _ [x] Embed Links _ [x] Attach Files _ [x] Read Message History
- General Permissions
- applications.commands
- bot
招待リンク https://discord.com/api/oauth2/authorize?client_id=<Your Bot Client ID>&permissions=536988672&scope=bot%20applications.commands
以上で Bot 編は終わりです。
Caution
設定の変更について
docker.file の変更や build を挟むような変更があった際は
各自 自分で調べて 対応する DockerImage を削除し 再度./script/***.shを実行してください