1
0

Keycloakをdocker composeで起動する

Last updated at Posted at 2024-07-19

概要

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のコンソール画面が表示されることを確認して下さい。

image.png

ログイン情報は、compose.yamlに記載してあるものです。

ログインできれば、次のような画面になり、自由に触れるはずです。
image.png

参考

1
0
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
0