docker-compose up
でマインクラフトサーバがコンテナ上で起動します。
- docker, docker-compose
- bin
- 実行ファイルが保存されるディレクトリです。
- data
- minecraft のデータが保存されるディレクトリです。
- minecord
- このディレクトリに mexican-particles/minecord プロジェクトが格納されることを期待しています。
必須ではなく、また submodule にすると管理が煩瑣になるので、あえてここに記述するのみに留めています。
- このディレクトリに mexican-particles/minecord プロジェクトが格納されることを期待しています。
- nginx
- Dynmap を https でリバースプロキシするためのディレクトリです。
ここではファイルによる認証について記述します。
cf. https://wiki.openssl.org/index.php/Command_Line_Utilities
openssl req -nodes -newkey rsa:2048 -sha256 -keyout private.pem -out csr.pem
※ これは一例で、セキュアな設定を保証するものではありません。
通常は以下の流れになります。
- csr.pem の内容を送信する
- ファイルによる認証を選択する
- ほかには DNS による認証、メールによる認証などが提供されていることがあります
- ファイルと、認証局がそのファイルにアクセスするための URL が指定される
前提として DNS が正しく設定されており、外部から http で正しくアクセスできる状態であるとします。
- 認証の対象となる FQDN を
.env
のFQDN
として指定します。 2.
で指定されたファイル名・ファイルパスを.env
のVALIDATOR_FILE_NAME
,VALIDATOR_PATH
として指定します。1.
で発行したprivate.pem
,csr.pem
と2.
でダウンロードしたファイルを/nginx/certification
以下に格納します。docker-compose up csr
します。
しばらくすると認証局から、証明書ファイルと中間証明書ファイルをダウンロードできるようになります。
これらを結合して fullchain.pem
を作成し /nginx/certification
以下に格納します。
csr
コンテナはもう不要なので docker-compose stop
などで停止します(削除しても構いません)。
最後に docker network create mc
でネットワークを作成し、
docker-compose up mc4rc
, docker-compose up nginx
でマインクラフトとリバースプロキシを起動します。
- nginx コンテナに curl があるのは導通確認用です。
SSL 関係の導通確認はブラウザからより curl から行ったほうが面倒が少ないです。 - eula.txt を true にする必要があるため、 mc4rc コンテナの初回 up はコケます。