Keycloak: Setup(1)
少し気になったのでKeycloakを触ってみる。最新versionの17は作りが16から大きく変わったようだが、ドキュメントが追い付いていない。一旦17で進めてみるけど16に変更するかも。
まずはKeycloakのインストールを行う。公式からtar.gzをダウンロードする。今回は前述のとおり17.0.0で進める。Dockerのイメージも公開されているのでそちらを利用も可能なのだろう。ただし、armで動くイメージが公開されていないので自分で作成する方針で行く。
KeycloakはJDK11以上が必要とのことなのでopenjdkの17系をベースにする。Dockerfile作らずにopenjdkイメージのままで良い気もするが作成しておく。
# vi Dockerfile
ARG FLAVOR="17.0.2-slim-bullseye"
FROM openjdk:${FLAVOR}
WORKDIR /app
ARG KEYCLOAK="keycloak-17.0.0.tar.gz"
COPY ./tgz/${KEYCLOAK} /app/
RUN set -x && \
mkdir -p /app/keycloak && \
cd /app && \
tar -zxvf ${KEYCLOAK} -C /app/keycloak --strip-components 1 && \
rm -rf ${KEYCLOAK}
EXPOSE 8080
ENTRYPOINT ["/app/keycloak/bin/kc.sh"]
CMD ["start-dev"]
volumeのマウントは何処をやっとけばいいのか、まだ良くわからない。conf, providers, themes, dataあたりを一旦はマウントするdocker-composeとする。
# vi docker-compose
version: '3'
services:
keycloak:
image:keycloak:17.0.0_jdk17.0.2_01
container_name: 'keycloak'
networks:
nw:
ipv4_address: 192.168.100.10
ports:
- 8080:8080/tcp
volumes:
- './files/keycloak-17.0.0/conf:/app/keycloak/conf'
- './files/keycloak-17.0.0/providers:/app/keycloak/providers'
- './files/keycloak-17.0.0/themes:/app/keycloak/themes'
- './files/keycloak-17.0.0/data:/app/keycloak/data'
entrypoint: "/app/keycloak/bin/kc.sh"
command: "start-dev"
environment:
- "KEYCLOAK_ADMIN=admin"
- "KEYCLOAK_ADMIN_PASSWORD=adminpassword"
restart: always
networks:
nw:
driver: bridge
ipam:
driver: default
config:
- subnet: "192.168.100.0/24"
driver_opts:
com.docker.network.bridge.name: keycloak
adminユーザの作成について、http://localhost:8080でアクセスしろとか無理なことが書いてある。できない場合はadd-user-keycloakスクリプトを使えと書いてあるが、そんなものは17には無い。いきなり挫折しそうになったが、どうやら環境変数に設定して置けば行けそう。
最終的にはnextcloudあたりと連携できるようにしたい。