Dockerコンテナ

Dockerコンテナを使用してCLIを実行

イメージの取得

まずCLIイメージを取得します。

$ docker pull keeper/keeper-secrets-manager-cli:latest

コンテナの実行

次にコンテナを実行します。デフォルトでは、コンテナはシェルモードでksmを実行するように設定されています。

$ docker run \
    --rm \
    -it \
    -v $PWD:/wd --workdir /wd \
    -v $HOME/.config:/etc/keeper -e KSM_INI_DIR=/etc/keeper \
    keeper/keeper-secrets-manager-cli:latest
  1. docker runコマンド。

  2. 実行が完了したときにコンテナを削除するフラグ。これにより、非アクティブなコンテナの累積を防ぐことができます。

  3. コンテナ操作を有効化するフラグ。

  4. カレントディレクトリをコンテナ内に/wdとしてマウントし、作業ディレクトリをコンテナ内の/wdに設定します。これにより、/wdに書き込まれた内容をすべて、コンテナ外部のカレントディレクトリに書き込むことができます。これは、ファイルをダウンロードするときに便利です。

  5. keeper.iniファイルを格納したい (または、格納している) ディレクトリをマウントします。次に、keeper.iniファイルを読み書きする場所をCLIに指示する環境変数を渡します。

  6. イメージの名前。

エイリアス

docker runコマンドは毎回入力するには長すぎるため、エイリアスの作成をお勧めします。

上記を実行すると、ksmのシェルが起動します。

次のエイリアスでは、runコマンドの最後にアプリケーションksmを追加します。これにより、ksmがシェルモードで起動しなくなります。

バイナリで構築

KSM CLI Dockerには、GLIBC (ほとんどのLinuxディストリビューション) とMUSL (Alpine Linux) の両方のCLIバイナリへのボリュームマウントが含まれています。ボリュームは、/cliです。このディレクトリは、docker-composeのvolumes_fromまたはコマンドラインdockerの-vを使用して、別のコンテナにマウントできます。ksmの実行ファイルは、Linuxディストリビューションが使用しているCライブラリのバージョン別のディレクトリにあります。

  • /cli/glibc/ksm - Ubuntu、Debian、Fedora、CentOSなどの標準GLIBCディストリビューションの場合。

  • /cli/musl/ksm - Alpine Linuxの場合。

たとえば、以下はCLIバイナリにアクセスする方法を示す簡単なフレームワークとなります。

initサービスは、CLI dockerをロードします。コンテナが起動し、CLIのスプラッシュ画面が表示されてから終了します。コンテナが停止しても、/cliボリュームには引き続きアクセスできます。

mainサービスは、volumes_fromを使用して、CLI dockerのボリュームをディレクトリ/cliにマウントします。commandでオーバーライドして、KSM CLIのGLIBCバージョンを実行します。commandは、CLIのexec機能を使用しています。これにより、Keeper表記法を使用する環境変数がシークレット値に置き換えられます。CLIのexecコマンドは、printenvアプリケーションを実行しています。これにより、Keeper表記法に設定され、execコマンドによって値がシークレットに置き換えられた環境変数MY_LOGINが表示されます。

最終更新