Skip to content

Blog

自分用・検証用 RockyLinux8 作成手順メモ(2022/02/07 版)

以前に以下のメモを書きました。

今回は RockyLinux をベースに検証用 Linux を作成する手順をメモしておきます。

golang で docker サブコマンドを実装する

docker-compose 当初 Python で書かれていましたが、v2 からは golang で書き直され、使い方も (v1 の docker-compose では無く) docker compose 〜 といった具合に利用するように変更されました。 docker コマンドのサブコマンドとして動作しているように見えますが、これは cobra を使って実装されているようです。 以下は cobra の公式ページからの引用です。

Cobra is both a library for creating powerful modern CLI applications as well as a program to generate applications and command files.

docker サブコマンドとしての実装例は下記が参考になります。

  • https://github.com/docker/cli/blob/master/cli-plugins/examples/helloworld/main.go
  • https://github.com/docker/compose/blob/v2/cmd/main.go

上記を参考に、更にダイエットして「最小の docker サブコマンド」をメモしておきます。

distroless/static ベースの OAuth2 Proxy コンテナイメージを作成した

Louketo に EOL notice として下記の記載があります。 Sunsetting Louketo Project にも同様の記載があります。

Louketo Proxy reached end of line in November 21, 2020. This means that we no longer support, or update it. The details are available here.

FAQ に下記の記載もあります。

Are there any alternatives I should use instead? OAuth2 Proxy is very close in a set of capabilities to Louketo Proxy and we highly suggest you investigate it as a replacement.

上述の通り、OAuth2 Proxy が代替候補として記載されています。 OAuth2 Proxy は golang で書かれており、シングルバイナリで動作する為、デプロイも簡単です。 OAuth2 Proxy は公式にも docker コンテナイメージが配布されているのですが、distroless/static ベースなイメージを作成したのでメモしておきます。

python-keycloak で Keycloak の操作を自動化する

python-keycloak を使うと Keycloak の操作をプログラムから自動化することが出来ます。 今回は python-keycloak の基本的な使い方をメモしておきます。 検証は RockyLinux8 と Python 3.9.6 で実施しました。

Keycloak 自体の REST API ガイドは Keycloak Admin REST API にあるものの、現時点で python-keycloak のドキュメントはあまり充実しておらず、keycloak_admin.py のソースコード などを直接、読んだ方が理解が進みそうです。