日本語ロケールが設定された Docker イメージを作成します。
通常、各言語毎のロケールはイメージが膨れるため割愛されます。
これを、ベースイメージに、apt-get install -y locales && locale-gen ja_JP.UTF-8
を加える事で対処します。
このリポジトリは、個人的によく使うイメージに日本語ロケールを追加したものを提供します。
GitHub Workflow を用いて、毎日アップストリームの更新チェックを行い、必要に応じてイメージをビルドします。
ghcr.io/musclepr/minecraft-server:latest
- itzg/minecraft-server:latest + 日本語ロケールghcr.io/musclepr/minecraft-server:java17
- itzg/minecraft-server:java17 + 日本語ロケール
ghcr.io/musclepr/mc-proxy:latest
- itzg/mc-proxy:latest + 日本語ロケール
ghcr.io/musclepr/mc-backup:latest
- itzg/mc-backup:latest + 日本語ロケール
compose.yml
の image
指定を変更し、タイムゾーンを指定します。
services:
mc:
#images: itzg/docker-minecraft-server:latest
images: ghcr.io/musclepr/minecraft-server:latest
environment:
TZ: "Asia/Tokyo"
これらのイメージには以下の日本語ロケール設定が追加されています:
- ロケール:
ja_JP.UTF-8
- 環境変数:
LANG=ja_JP.UTF-8
LANGUAGE=ja_JP:ja
LC_ALL=ja_JP.UTF-8
このプロジェクトをローカルでビルドする場合:
# 全てのイメージをビルド
./build.sh
# Minecraft Server (latest)
docker build -t ghcr.io/musclepr/minecraft-server:latest \
--build-arg IMAGE=itzg/minecraft-server:latest .
# Minecraft Server (Java 17)
docker build -t ghcr.io/musclepr/minecraft-server:java17 \
--build-arg IMAGE=itzg/minecraft-server:java17 .
# MC Proxy
docker build -t ghcr.io/musclepr/mc-proxy:latest \
--build-arg IMAGE=itzg/mc-proxy:latest .
# MC Backup
docker build -t ghcr.io/musclepr/mc-backup:latest \
--build-arg IMAGE=itzg/mc-backup:latest .
GitHub Actions のワークフローでは、アップストリームイメージのダイジェストを gh-pages
ブランチの digests.json
で管理しています。
各イメージごとに最新ダイジェストを記録し、差分がなければ自動的にビルドをスキップします。
ビルド後は digests.json
を自動更新し、gh-pages
ブランチへ push されます。
これにより、不要なビルドを防ぎつつ、アップストリームの更新にのみ反応します。
gh-pages
のdigests.json
に全イメージのダイジェストをキーごとに管理- ワークフローの最初で
digests.json
を取得し、対象イメージのダイジェストを比較 - 差分があればビルド・push後に
digests.json
を更新しgh-pages
に反映
{
"itzg/minecraft-server:latest": "sha256:xxxx...",
"itzg/mc-proxy:latest": "sha256:yyyy...",
"itzg/mc-backup:latest": "sha256:zzzz..."
}
本プロジェクトの Dockerfile は、ベースイメージが Alpine ベースか Ubuntu ベースかを自動検出し、適切なロケールパッケージをインストールします:
- Alpine系:
musl-locales
とmusl-locales-lang
パッケージ - Ubuntu/Debian系:
locales
パッケージとlocale-gen
コマンド
- Alpine Linux ベース(mc-backup など)
- Ubuntu/Debian ベース(minecraft-server、mc-proxy など)
- itzg/minecraft-server - 元の Minecraft サーバーイメージ
- itzg/mc-proxy - Bungeecord/Velocity プロキシ
- itzg/mc-backup - バックアップツール
- 日本語ロケールサポート:
ja_JP.UTF-8
の完全サポート - クロスプラットフォーム対応: Alpine/Ubuntu 両方のベースイメージに対応
- 自動検出: ベースイメージの OS を自動検出してパッケージ管理
- 環境変数:
LANG=ja_JP.UTF-8
LANGUAGE=ja_JP:ja
LC_ALL=ja_JP.UTF-8
- 追加パッケージ:
- Alpine:
musl-locales
,musl-locales-lang
- Ubuntu/Debian:
locales
+locale-gen ja_JP.UTF-8
- Alpine:
- コンテナ内でロケール設定を確認:
docker exec -it <container_name> locale
- 日本語ロケールが利用可能か確認:
docker exec -it <container_name> locale -a | grep ja_JP
プラグインの設定ファイルで文字エンコーディングを UTF-8
に設定してください。
localized-images/
├── Dockerfile # ユニバーサル Dockerfile(Alpine/Ubuntu対応)
├── build.sh # 自動ビルドスクリプト
├── .dockerignore # Docker 除外ファイル
├── .gitignore # Git 除外ファイル
├── README.md # このファイル
└── .github/
└── workflows/
└── build.yml # GitHub Actions ワークフロー
- Dockerfile: ベースイメージの種類を自動検出し、適切なロケールパッケージをインストール
- build.sh: 4つのイメージを一括でビルドする自動化スクリプト
- .dockerignore: ビルド時に不要なファイルを除外
- .gitignore: Git管理対象外ファイルの指定
- .github/workflows/build.yml: 自動ビルド・更新ワークフロー
このプロジェクトは元の itzg プロジェクトと同じライセンスに従います。