LoginSignup
1
1

More than 1 year has passed since last update.

【M1 Mac対応】Keycloakをdocker composeで構築

Last updated at Posted at 2022-11-13

yamaday0uです。

以前、Docker(docker compose)でKeycloak環境を構築という記事を投稿しましたが、このとき紹介したdocker-compose.ymlファイルには2つの課題がありました。

それは次のとおりです。

  • M1チップのMacBookでは動かせない
  • データの永続化ができていない

今回はその2つの課題を克服したdocker-compose.ymlファイルを作成したので、皆さんに紹介します。

docker-compose.ymlファイルの内容

以下のようにdocker-compose.ymlファイルを作成しました。このファイルはぼくのgithubでリポジトリでも公開していますので、そちらもご参照ください。

docker-copose.yml
version: '3'
services:
  keycloak:
    image: sleighzy/keycloak:latest
    container_name: keycloak
    ports:
      - "4000:8080"
    volumes:
      - ./data:/opt/jboss/keycloak/standalone/data
    environment:
     KEYCLOAK_USER: admin
     KEYCLOAK_PASSWORD: ${KEYCLOAK_PASSWORD}

どのように変わったか

imageの変更

1つ目の変更点はimageです。

以前はjboss/keycloak:16.1.1というimageを使っていたのですが、こちらはM1チップのMacBookには対応していませんでした。

そこでM1チップのMacBookが使用しているarm64アーキテクチャに対応しているimageを探していたところ、sleighzy/keycloakというimageを発見したので、これを採用しています。

ただ代わりに、IntelチップのMacBookには非対応となってしまっているので、該当する方はご注意ください。

データの永続化の実装

2つ目の変更点はvolumesを追加した点です。

データの永続化を実装するため、KeycloakをDocker Composeで動かすサンプルコードという記事を参考にしました。

ここでとても一番苦労したのですが、使用しているimageが違うためか、コンテナ側でデータを保存している場所が異なっていたので、その場所を探すのに時間を要しました。

最終的にはSTACK OVERFLOWのDocker-compose volume doesn't save state of container for Keycloakという質問に対する回答を参考にしてデータの保存場所を見つけ出しました。

データの永続化を実装したことにより、docker-compose downでimageやvolumeが削除されても、docker compose upで再びコンテナを生成したときでも前回まで保存されたデータを復元してくれるようになりました。

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