日本語ロケールが設定された 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-8LANGUAGE=ja_JP:jaLC_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-8LANGUAGE=ja_JP:jaLC_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 プロジェクトと同じライセンスに従います。