yamaday0u Blog Written by yamaday0u

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

SSO

yamaday0uです。

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

それは次のとおりです。

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

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

スポンサーリンク

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

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

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で再びコンテナを生成したときでも前回まで保存されたデータを復元してくれるようになりました。

yamaday0uを応援お願いします!あなたの1クリックが励みになります。
>> にほんブログ村