Skip to content

Docker

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 ベースなイメージを作成したのでメモしておきます。

AmazonLinux2 上に Docker で Zabbix を構築する

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

今回は Amazon Linux2 へ Docker で Zabbix 環境をインストールする手順をメモしておきます。 検証では t3a.micro (2vCPU / 1GB メモリ) を利用したのですが、コンテナは起動するものの、再起動 (docker compose restart -d) するとフリーズすることがあった為、実用するのであればしっかりサイジングする必要がありそうです。

AmazonLinux2 へ docker と docker-compose をインストールする

Amazon Linux2 では Amazon Extras で Docker が提供されています。 docker-compose をインストールしたい場合、CPU アーキテクチャに応じた docker-compose のバイナリを選択する必要があります。

ファミリー (一例) アーキテクチャ
t2, t3, t3a amd64
t4g arm

今回は Amazon Linux2 へ docker と docker-compose をインストールする手順をメモしておきます。

IP アドレス計算をする「ipcalc」コンテナを Nginx Proxy 環境下で動作させる

以前に IP アドレスの計算をしてくれる Web アプリケーションを作成したのですが、distroless を使ったマルチステージビルドの練習をすべく、この Web アプリケーションを docker コンテナイメージにしてみました。 作成した Docker コンテナイメージは以下で公開しています。

この Docker コンテナイメージを Nginx を使った HTTP Proxy 配下で動作させる方法をメモしておきます。