イメージ
すべてのリリースでイメージ ghcr.io/devlive-community/grantforge:<バージョン>(linux/amd64 と linux/arm64)を公開し、正式版では latest も同時に更新します。
docker run -p 9999:9999 ghcr.io/devlive-community/grantforge:2026.0.0イメージはリリースパッケージからビルドされ、eclipse-temurin:21-jre をベースにしており、非特権ユーザー(UID 10001)で実行され、ログはコンソールに出力され、データベースは含まれません。ソースから自分でビルドすることもできます。
./mvnw -DskipTests package
docker build -f deploy/docker/Dockerfile -t grantforge distイメージの規約は次のとおりです。
| パス / 変数 | 説明 |
|---|---|
/opt/grantforge/data |
ボリューム。組み込み H2 のデータファイル |
/opt/grantforge/plugins |
ボリューム。サービスタイプのプラグイン |
/opt/grantforge/drivers |
追加の JDBC ドライバー(MySQL Connector/J はここに置きます) |
9999 |
サービスのポート |
HEALTHCHECK |
/actuator/health/readiness を呼び出します |
Compose の例
deploy/compose/ にはデータベースごとに例が 1 つずつ用意されています。h2、postgres、mariadb、mysql、sqlserver、oracle です。
docker compose -f deploy/compose/postgres.yml up -d
docker compose -f deploy/compose/postgres.yml logs grantforge | grep "setup token"その後 http://127.0.0.1:9999/ を開きます。例で使っている既定のデータベースパスワードは試用にしか適さないため、実際に使う前に GRANTFORGE_DB_PASSWORD で変更してください。MySQL の例では、まず mysql-connector-j-<バージョン>.jar を deploy/compose/drivers/ に入れる必要があります。
Helm
deploy/helm/grantforge は Helm Chart です。1 つの StatefulSet と外部データベースで構成され、各レプリカは Pod の順序に応じて自分の ID ノード番号を取得します(Kubernetes 1.28 以上が必要です)。
helm install grantforge deploy/helm/grantforge \
--set database.url=jdbc:postgresql://postgresql:5432/grantforge \
--set database.username=grantforge \
--set database.existingSecret=grantforge-db \
--set encryptionKey=$(openssl rand -base64 32)主なパラメーターは次のとおりです。
| パラメーター | 既定値 | 説明 |
|---|---|---|
image.repository / image.tag |
ghcr.io/devlive-community/grantforge / Chart の appVersion |
イメージ |
replicaCount |
1 |
レプリカ数。1 より大きくできます |
database.url / username / password |
— | データベース接続。パスワードは existingSecret に置くことを推奨します |
setupToken |
空 | 初期化トークンを事前に指定します。空の場合はログに出力されます |
encryptionKey |
空 | 保存済みのシークレット(アイデンティティソースのパスワード、認証器のキー、署名用の秘密鍵など)を暗号化する 32 バイトの Base64 キー。空の場合は自動生成してデータベースに保存します |
cookieSecure |
false |
TLS が入口で終了する場合は true に設定します。セッション Cookie には常に Secure が付きます |
ingress.* |
無効 | コンソールと API を公開します |
plugins.persistence.enabled |
false |
プラグインディレクトリに永続ボリュームをマウントします |
podDisruptionBudget.enabled |
false |
レプリカが複数ある場合は有効化を推奨します |
