カテゴリー
ゲーム

VPS WebARENA (Indigo) でMineCraftのマルチプレイ環境構築

MineCraftのマルチプレイ環境構築

Indigoの最安値スペック(メモリ1GB)にMineCraftをインストールしてみたのですが、
メモリ不足であえなく異常終了してしまいました。

$ docker-compose -f docker-compose-simple.yml up
Creating network "minecraft_default" with the default driver
Pulling mc (itzg/minecraft-server:)...
mc_1  | OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000d5550000, 715849728, 0) failed; error='Not enough space' (errno=12)
mc_1  | #
mc_1  | # There is insufficient memory for the Java Runtime Environment to continue.
mc_1  | # Native memory allocation (mmap) failed to map 715849728 bytes for committing reserved memory.
mc_1  | # An error report file with more information is saved as:
mc_1  | # /data/hs_err_pid458.log
mc_1  | 2022-06-19T08:14:58.526Z        WARN    mc-server-runner        Minecraft server process failed {"exitCode": 1}
mc_1  | 2022-06-19T08:14:58.526Z        INFO    mc-server-runner        Done

そのため、スペックを1つ上げて(メモリ2GB/CPU2v)で環境を作成しなおしました。

もし、まだVPS(Docker環境構築)が出来てない場合は、

VPS WebARENA (Indigo) でDocker環境構築

を参考に環境準備を進めて頂ければと思います。

1GBではNG

Docker環境にMineCraftをインストール

まずは参考にさせて頂いたサイトのソースを
少し修正した、以下のファイルをサーバへアップロードします。

  • docker-compose.yml :本体
  • jupyter/Dockerfile :jupyterlabを立ち上げるためにDockerfile
  • jupyter/requirements.txt :py3minepiというRaspberryJuice Modとpythonが通信するためのパッケージ
  • raspberryjuice-1.12.1.jar :今回必要なModのRaspberryJuice

raspberryjuice-1.12.1.jarは、Spigotはプラグインを使って遊ぶことのできる
マインクラフトのサーバー
spigot
からダウンロードしてきます。

C:.
│  docker-compose.yml
│
├─jupyter
│      Dockerfile
│      requirements.txt
│
└─plugins
        raspberryjuice-1.12.1.jar

ファイル転送

サーバへアップロードしたファイルも掲載しておきます。

docker-compose.yml

version: '3'
services:
  minecraft-server:
    image: "itzg/minecraft-server:latest"
    container_name: "mc-pi"

    ports:
      - "25565:25565"
      - "4711:4711"

    volumes:
      - "./data:/data"
      - "./plugins:/plugins"

    environment:
      EULA: "TRUE"
      TYPE: "SPIGOT"
      VERSION: "1.8-R0.1-SNAPSHOT-latest"

    tty: true
    stdin_open: true
  jupyter:
    build:
      context: ./jupyter
    environment:
      JUPYTER_ENABLE_LAB: 1
    ports:
      - 8888:8888
    volumes:
      - ./jupyter:/home/jovyan/work
    command: start-notebook.sh --NotebookApp.token='password'

Dockerfile

FROM jupyter/datascience-notebook
COPY requirements.txt /home/jovyan/work/requirements.txt
RUN pip install -r /home/jovyan/work/requirements.txt

requirements.txt

git+https://github.com/py3minepi/py3minepi

MineCraftを起動する

それでは、ファイルを配置した場所に移動し、docker-composeコマンドを実行します。

SSHでの接続方法は、

を参考にしてみてください。

$ docker-compose ps
       Name                      Command                  State                               Ports
----------------------------------------------------------------------------------------------------------------------------
mc-pi                 /start                           Up (healthy)   0.0.0.0:25565->25565/tcp,:::25565->25565/tcp,
                                                                      25575/tcp, 0.0.0.0:4711->4711/tcp,:::4711->4711/tcp
minecraft_jupyter_1   tini -g -- start-notebook. ...   Up (healthy)   0.0.0.0:8888->8888/tcp,:::8888->8888/tcp

MineCraftで接続してみようとする

Java版の試用版をつかって接続しようと考えていたのですが、
なんと試用版はマルチプレイが出来ませんでした。。。残念。

Java無料版

無料版ダウンロード

jupyterLabを使ってみる

「password」を入力するとログインできます。

jupyterLab

JupyterLabでpythonのnotebookを作ります。

jupyterLab

以下を実行すると、チャットにメッセージが表示され、、、るはずです!

from mcpi.minecraft import Minecraft
mc = Minecraft.create("minecraft-server", 4711)
mc.postToChat("Hello Minecraft!!!")

jupyterLab

また、jupyterLabはそれだけれも色々遊ぶことが出来るので、いじってみてください。

jupyterLab

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください