今日は溜まった日記をまとめて書くためにバドミントン練習はおやすみ。

コンテナの環境変数の再利用

朝から rpm パッケージングのリファクタリングをしてインストール検証をした後、バックアップスクリプトの調査をしていた。コンテナの環境変数は次のようにして取得できる。

  • 環境変数をすべて表示
$ docker compose exec mongo env
  • 任意の環境変数の値を取得
$ docker compose mongo printenv MONGODB_PORT_NUMBER
  • パスワードの隠蔽

コンテナ内の mongodump を実行するときにパスワードを隠蔽するにはパイプを使って標準入力から渡す。

$ echo ${passwd} | docker compose exec --no-TTY mongo mongodump --authenticationDatabase admin --uri mongodb://${user}@localhost:27017 --db mydb --archive > mydb.dump

tar ball によるバックアップ

普通に tar ball を作ると次のようになる。

$ tar --exclude path/to/dir/subdir1 --exclude path/to/dir/subdir2 -czf backup.tar.gz path/to/dir

お手伝い先の社員さんに zstd という新しい圧縮アルゴリズムを使う方がよいとアドバイスをもらって変更した。別途 zstd のパッケージはインストールしておく必要がある。

$ tar --exclude path/to/dir/subdir1 --exclude path/to/dir/subdir2 --zstd -cf backup.tar.zst path/to/dir