コンテンツが圧縮され暗号化され、インストール可能なパッケージ形式を作成するのは私の責任です。
私はこれをcryptsetup rawデバイスに組み込まれたsquashfsとしてモデル化しました。
ああ、cryptsetupを設定するにはrootアクセスが必要なので、jenkinsなどのビルドサーバーからこれらのパッケージをビルドすることはできません。 Dockerコンテナ内で同じ操作を実行しても、Dockerがデバイスマッパーに透過的ではないため、機能しません。
したがって、次のオプションがあります。
- ビルドサーバーでsquashfsを作成し、「手動で」cryptsetupレイヤーを完了します。
- どういうわけかカーネルの介入なしにcryptsetup暗号化を実行します。
1.はプロセスに別のステップを追加するので、2のようなタスクを好みます。
理解しやすくするには:
現在私は次のことをしています
mksquashfs <sources> tempfile -noappend
<determine the size of tempfile>
<create "outfile" file with said size>
cryptsetup open -q -d keyfile outfile <my-dm-device>
mksquashfs <sources> /dev/mapper/<my-dm-device> -noappend
cryptsetup close <my-dm-device>
単純化したい
mksquashfs <sources> tempfile -noappend
user_space_crypt_create -q -d keyfile tempfile outfile
ここで、user_space_crypt_createは、暗号化されていない一時ファイルを(raw)暗号化された出力ファイルに変換します。このファイルは後でcryptsetupを介してターゲットシステムにインストールできます。
そんなことがありますか?