概要
Keycloakをdocker composeで動かすための手順を紹介します。
手元の環境でサクッと動作確認したい場合に便利です。
KeycloakのDBには、MariaDB、Microsoft SQL Server、Oracle Database、MySQLなどが使えますが(利用可能なDBはこちらを参照)、本記事ではPostgreSQLを利用する場合の手順を紹介します。
環境
以下の環境で試しています。
Docker 24.0.5
Docker Compose v2.20.2
WSL2 Ubuntu 22.04 on Windows
なお、AWS EC2やAzure VMにて動作させ、インターネットからKeycloakに対してアクセスする場合は、HTTPではなくHTTPSでアクセスする必要があります。
そうしないと、Keycloakのコンソール画面にアクセスすることができません。
localhost指定でKeycloakにアクセスすればSSL化は必要ないので手間がかかりません。
本記事ではlocalhostでアクセスする場合の手順を記載します。
手順
1.compose.yamlを任意のディレクトリに用意して下さい。
compose.yamlの内容は次の通りです。バージョンは適宜変えてください。
services:
keycloak:
image: quay.io/keycloak/keycloak:16.1.1
environment:
DB_VENDOR: POSTGRES
DB_ADDR: postgres
DB_DATABASE: keycloak
DB_USER: keycloak
DB_PASSWORD: password
KEYCLOAK_USER: test
KEYCLOAK_PASSWORD: test
ports:
- "8080:8080"
depends_on:
- postgres
postgres:
image: postgres:15.7
environment:
POSTGRES_DB: keycloak
POSTGRES_USER: keycloak
POSTGRES_PASSWORD: password
ports:
- "5432:5432"
2.次のコマンドを実施してください。
docker compose up -d
3.コンテナが2つ起動したことを確認して下さい。
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
439f3987026d quay.io/keycloak/keycloak:16.1.1 "/opt/jboss/tools/do…" 3 seconds ago Up 2 seconds 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp, 8443/tcp keycloak-postgresql-test-keycloak-1
ff665a3ec46c postgres:15.7 "docker-entrypoint.s…" 3 seconds ago Up 2 seconds 0.0.0.0:5432->5432/tcp, :::5432->5432/tcp keycloak-postgresql-test-postgres-1
4.ブラウザにて http://localhost:8080
にアクセスし、Keycloakのコンソール画面が表示されることを確認して下さい。
ログイン情報は、compose.yamlに記載してあるものです。
ログインできれば、次のような画面になり、自由に触れるはずです。
参考