はじめに
ローカルPCにDocker desktopをインストールして、
ローカル環境でpostgreSQLとkeycloakを立ち上げるまでの手順をまとめました。
認証認可サーバと連携が必要なAPIの開発をする際、
ローカル環境でも連携させる動作確認がしたい。
データベースを用意して、
ローカル環境で自由にテストデータを書き換えながらAPIの動作確認をしたい。
などのケースを想定した環境構築手順です。
Docker desktopをインストールしてローカル環境にpostgreSQLとKeycloakを立ち上げる
インストール手順はすでに色々まとめられているサイトはあるので、
まず、
>>docker desktopのインストーラをダウンロードして、
Macの方は以下参考に
>>MacにDocker Desktopをインストールして動かす
Windowsの方は以下参考に
>>WindowsにDocker Desktopをインストールして動かす
インストールしてみてください。
そこまで複雑な手順ではないので手順に従ってやればそこまでハマることはないはずです!!
インストールできたら、ターミナルやコマンドプロンプトで
docker version
と入力してバージョン情報が返ってくればインストール成功です。
docker-compose.ymlを簡単にみてみる
ついでにDocker上にpostgreSQL、Keycloakを立ち上げる際に、
必要となるdocker-compose.ymlの設定内容を簡単にみてみましょう。
その前に、
Docker上にpostgreSQLとKeycloakを立ち上げるための設定を入れたソースコードを
公開しているのでダウンロードしてください。
それでは、
docker-compose.ymlを見ていきましょう!!
dockerを起動する際には、docker-compose.ymlが読み込まれて、
その設定の通りdocker上にいろんなサーバ(jboss/keycloak、postgreSQLとか)が立つ。
みたいなざっくりとそんなイメージでdocker-sompose.ymlを見て頂ければと思います。
まず、keycloakの設定を見ていきます。
ここで抑えておきたいのは、以下4点です。
- ポート8180でjboss/keycloak(jbossというアプリケーションサーバの上にkeycloakミドルウェア)を立ち上げている。
- keycloakのバージョンは15.0.2。
- keycloakの管理者ユーザをadmin/adminで登録している。
- >>sample-realm.jsonを読み込んでkeycloakを初期セットアップ済みの状態で立ち上げている。
次に、postgreSQLの設定を見ていきます。
ここで抑えておきたいのは、以下4点です。
- ポート5432でpostgreSQLを立ち上げている。
- postgreSQLのバージョンは14.1。
- 管理者ユーザをroot/rootで登録している。
- DBサービス名はsampledbで立ち上げている。
これだけ抑えられたら完璧です!!
最後に、
githubからダウンロードしたプロジェクト直下(docker-compose.yml)がある場所で
以下コマンドでサーバ立てておきましょう。
docker-compose up -d
ちなみに、dockerを落としてサーバを壊すのはこのコマンドです。
docker-compose down
こんな感じで、
ローカル環境にサーバを簡単に立てたり、壊したりすることができるようになりました!!
postgreSQLにDBeaverで繋いでみる
ここからはおまけ編です!!
ローカル環境で立てた直後のpostgreSQLに、
DBeaverというデータベースクライアントツールを使って
繋いでみるとこんな感じです。
DBeaverインストールする方はこちらからできます。(WindowsならA5M2も個人的にはオススメです)
Docker上に立ち上げたKeycloakに繋いでみる
これもおまけですが、、、
ローカル環境で立てたKeycloakに、
アクセスするとこんな感じでclientというkeycloakと連携するAPIが
利用するものが事前にセットアップできてたり、
ユーザが事前にkeycloakに登録できてたりします。
まとめ
ローカル環境にDocker desktopをインストールする。
さらにdocker上にpostgreSQLとKeycloakを構築する手順について解説しました。
他のサーバをローカルに立てるのも同じ流れでできますし、
簡単にサーバを壊して作り直してもできる(しかもパッとできて軽い)ので、
このように開発環境をセットアップする現場は結構多いと思います。
Docker desktopが条件付きで有償化されますが、、、
個人の勉強で利用するのは無償なのと、目的はバックエンド開発の勉強なので、
別に引き続きDocker desktopを利用してパッとローカル環境構築するだけなら問題ないでしょう。
2022/3/22追記
現場での開発を想定した
バックエンドのローカル開発環境構築まとめ記事を作ったので
良ければそちらを参考に環境構築してみてください!!
IntelliJ IDEA、docker desktop(postgreSQL、keycloak)、Flyway、DBeaverを利用したバックエンド開発環境構築