1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Keycloakをdockerで動かしてレルムをエキスポートする

Last updated at Posted at 2023-10-05

Dockerで開発用にレルム/ユーザー/クライアントを登録して、それをエキスポートする方法を備忘録的に書いておきます。

データ登録

開発用にレルム/ユーザー/クライアントを登録します。

空のフォルダに移動して Docker で Keycloak をstart-devで起動します。
このときカレントディレクトリを /opt/keycloak/data にマウントしておきます。
このなかに既定のデータベースであるh2のデータフォルダができます。

あとは普通に http://localhost:8080 にアクセスして、adminコンソールから、レルムの作成、クライアントやユーザーを登録してください。
今回はレルムはmainという名前にします。

docker run --rm -v .:/opt/keycloak/data -p 8080:8080 \
  -e KEYCLOAK_ADMIN=admin -e KEYCLOAK_ADMIN_PASSWORD=P@ssw0rd \
  quay.io/keycloak/keycloak:latest start-dev

終わったら、C-cで終了します。

エキスポート

エキスポートは以下のコマンドで実行します。

docker run --rm -v .:/opt/keycloak/data quay.io/keycloak/keycloak:latest \
  export --dir /opt/keycloak/data/export --users realm_file --realm main

これで export ディレクトリに main-realm.json が出来上がります。

インポート

起動時にインポートするには、/opt/keycloak/data/import に、このmain-realm.jsonを置いておいて、起動時の引数に--import-realmをつけて起動することで自動的にインポートされます。

ボリュームのマウント位置が変わっているので気を付けてください。

docker run --rm -v export:/opt/keycloak/data/import -p 8080:8080 \
  -e KEYCLOAK_ADMIN=admin -e KEYCLOAK_ADMIN_PASSWORD=P@ssw0rd \
  quay.io/keycloak/keycloak:latest start-dev --import-realm

これで起動時に読み込めます。簡単ですね。

注意点としては

  1. master-realm.jsonは読み込めない。既にレルムが存在する場合にはスキップ。
  2. ユーザーが多いときは --usersのオプションを変更する

詳しくはImporting and Exporting Realmsを参照してください。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?