このリポジトリは、narou-mod を Docker コンテナ上で動作させるためのDockerfile および関連ファイルを提供しています。
ponponusa が運用している家庭用NAS(Synology DS415+)では、compose が利用できないので、単一の
Dockerfileを使ってイメージをビルドし、コンテナを起動する方法を採用しています。
narou-modのバージョン2.0.3-646d9ad以上- Docker がインストールされている環境
- Windows 11 (PowerShell) + WSL2 が動作する環境
Linux (Ubuntu 20.04 以上推奨)対応予定macOS (Ventura 13.0 以上推奨)対応予定
Windows 11 の PowerShell 上でこの Dockerfile を使ってイメージをビルドし、コンテナを起動する手順は、以下のようになります。
前提条件:
- Docker Desktop for Windows がインストールされており、WSL 2 バックエンドで実行されていること(※ホストがWindowsの場合)
- このリポジトリのファイル一式がPC上のどこか(例:
C:\docker\narou-mod-docker)に保存されていること - ホスト側で、小説データを保存・共有するためのフォルダ(例:
C:\my-novels,/home/narou/novel)を準備していること
まず、PowerShell を起動し、Dockerfile を保存したフォルダに cd コマンドで移動します。
# 例: C:\docker\narou フォルダに Dockerfile がある場合
cd C:\docker\narouDockerfile のビルド時に使用する環境変数を .env ファイルで設定します。
必要に応じて、.env ファイルの内容を編集してください。
# 例: .env ファイルの内容
HOST_NOVEL_PATH="C:\my-novels"
HOST_P1=33000
HOST_P2=33001# 例: run.ps1 スクリプトを実行
.\run.ps1まず、PowerShell を起動し、Dockerfile を保存したフォルダに cd コマンドで移動します。
# 例: C:\docker\narou フォルダに Dockerfile がある場合
cd C:\docker\narou次に、docker build コマンドを実行してイメージを作成します。
ビルドが完了すると、narou-mod-app という名前のローカルイメージが作成されます。
最後に、docker run コマンドでビルドしたイメージをコンテナとして起動します。
重要なポイント:
- ポート (
-p):.envで定義したHOST_P1 (33000)とHOST_P2 (33001)をホストPCにマッピングします - ボリューム (
-v): ステップ2で指定したホスト側のパス(C:\my-novels)を、コンテナ内の/app/novelに接続(バインド)します - 環境変数 (
-e): ビルド時に引数で環境変数を渡した場合は、実行時にも環境変数として渡す必要があります
# PowerShell で改行する場合は、行末に ` (バッククォート) を入力する
docker run -d --name narou-mod-app `
-p 33000:33000 `
-p 33001:33001 `
-v "C:\my-novels:/app/novel" `
-e HOST_NOVEL_PATH="C:\my-novels" `
narou-mod-appコマンドの解説:
docker run: コンテナを起動-d: バックグラウンドで実行(デタッチモード)--name narou-mod-app: コンテナにnarou-mod-appなどの分かりやすい名前を付ける-p 33000:33000: ホスト(Windows)の 33000番ポートを、コンテナのP1(33000番) に接続-p 33001:33001: ホスト(Windows)の 33001番ポートを、コンテナのP2(33001番) に接続-v "C:\my-novels:/app/novel": ホストのC:\my-novelsフォルダを、コンテナの/app/novelフォルダにマッピング-e HOST_NOVEL_PATH="C:\my-novels": コンテナ内のHOST_NOVEL_PATH環境変数に、ホストのパスを設定narou-mod-app: 起動するイメージの名前
コンテナが起動したら、docker ps コマンドで実行状態を確認できます。
docker psSTATUS が Up ... となっていれば成功です。
ブラウザで http://localhost:33000 (既定のポートの場合)にアクセスすると、narou-mod のWebサーバーが表示されるはずです。
# 停止 (名前指定)
docker stop narou-mod-app
# 削除 (名前指定)
docker rm narou-mod-app