とりあえず雑に。情報共有になることを信じて。
誰かにもっとよい物を作って欲しいです。docker-compose あたりで。
Minecraft Bedrock Edition(1.6.1.0) です。具体的に言うと Android, iOS, Windows 10。
正確には Xbox One や Nintendo Switch も含まれるのですが、彼らは任意のサーバを利用することができないはずです。
tl;dr
FROM ubuntu:18.10
MAINTAINER local
WORKDIR /root
RUN apt update && apt install -y make wget gcc perl unzip libcurl4-openssl-dev
RUN wget https://minecraft.azureedge.net/bin-linux/bedrock-server-1.6.1.0.zip && wget https://github.com/openssl/openssl/archive/OpenSSL_1_0_0-stable.zip
RUN unzip OpenSSL_1_0_0-stable.zip && unzip bedrock-server-1.6.1.0.zip
WORKDIR /root/openssl-OpenSSL_1_0_0-stable
RUN ./config shared && make && make install
ENV LD_LIBRARY_PATH .:/usr/local/ssl/lib
WORKDIR /root
CMD ["./bedrock_server"]
説明
FROM ubuntu:18.10
なんか glibc だかのバージョンが古いらしくて、それをどうにかできたのが ubuntu 18.10 だった。alpineでの実現方法を知りたい
MAINTAINER local
WORKDIR /root
適当
RUN apt update && apt install -y make wget gcc perl unzip libcurl4-openssl-dev
curl
があるけど個人的な好みで wget
を得た
unzip
は解凍用
gcc perl libcurl4-openssl-dev
は OpenSSL のビルドをするため
RUN wget https://minecraft.azureedge.net/bin-linux/bedrock-server-1.6.1.0.zip && wget https://github.com/openssl/openssl/archive/OpenSSL_1_0_0-stable.zip
bedrock の linux 用サーバと libssl.so.1.0.0
を要求してくるので OpenSSL 1.0.0 を得る
RUN unzip OpenSSL_1_0_0-stable.zip && unzip bedrock-server-1.6.1.0.zip
雑に解凍
WORKDIR /root/openssl-OpenSSL_1_0_0-stable
RUN ./config shared && make && make install
OpenSSLのビルド。 config
に shared
を付けたのは so ファイルを生成させるため。
ENV LD_LIBRARY_PATH .:/usr/local/ssl/lib
bedrock_server の起動に必要な環境変数。 /usr/local/ssl/lib
は libssl.so.1.0.0
のため
WORKDIR /root
CMD ["./bedrock_server"]
起動。終了のことは考えてない。