DockerでKeycloakをセットアップする際にいくつかの問題に直面しました。ここではそれらの問題と、それを解決するための一連の試行錯誤を共有します。
1. DockerでKeycloakのrunが数秒で停止する
最初に直面した問題は、docker run
コマンドを実行した際に、Keycloakコンテナが数秒後に停止してしまうというものでした。
問題の状況
以下のコマンドを実行すると、コンテナがすぐに停止してしまいます。
※administrator、passwordの部分は任意の文字列
docker run -p 18080:8080 -e KEYCLOAK_USER=administrator -e KEYCLOAK_PASSWORD=password quay.io/keycloak/keycloak:latest
解決のために試したこと
以下の操作でコンテナのログをチェックしてみましたが、特定のエラーメッセージは見つかりませんでした。
docker logs $(docker ps -q -l)
[補足]
コンテナのIDまたは名前を直接指定してログを表示することもできます。まず、docker ps -aコマンドを使用してすべてのコンテナのリストを取得し、関心のあるコンテナのIDまたは名前を見つけます。
docker ps -a
出力からコンテナのIDまたは名前を見つけたら、以下のコマンドでログを取得します(を実際のコンテナIDまたは名前に置き換えてください)。
docker logs <container_id_or_name>
解決策
KEYCLOAK_ADMIN
とKEYCLOAK_ADMIN_PASSWORD
環境変数を使用してコンテナを実行しました。
docker run -p 18080:8080 -e KEYCLOAK_ADMIN=<admin_user_name> -e KEYCLOAK_ADMIN_PASSWORD=<admin_user_password> quay.io/keycloak/keycloak:20.0.1 start-dev
これにより、Keycloakコンテナは正常に起動し、数秒後に停止する問題は解決しました。
2. 誤ったリンクへのアクセス
Keycloakの管理コンソールにアクセスしようとした際に、誤ったリンクを使用していました。
問題の状況
localhost:18080/auth
へのアクセスを試みたところ、「Page not found」エラーが表示されました。
正しいアクセス方法
実際にはlocalhost:18080/admin
が正しいURLでした。このURLをブラウザで直接入力することで、ログイン画面が表示され、ここで先ほど設定した<admin_user_name>
と<admin_user_password>
を入力することで、Keycloakにログインすることができました。
補足
Keycloakコンテナのログは以下のコマンドで確認できます。
docker logs <container_id>
ログからは、Keycloakが開発モードで起動していること、ユーザー名admin
が既に存在するため再追加できないことなどが確認できました。