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 はコケます。