テーマ: build
-
小さく再現可能なコンテナーイメージを作る
ベースイメージをダイジェストで固定し、ロックファイルからハッシュを検証してインストールし、実行時に必要なものだけをコピーする。root 以外のユーザーで実行し、ヘルスチェックを追加し、レイヤーやビルド引数にシークレットを含めない。
-
ビルドの来歴証明:SLSA が記録する内容と検証方法
SLSA の Build トラックは、成果物の来歴の信頼性を「来歴が存在する」(L1)から強化されたビルド基盤(L3)まで評価します。来歴は、成果物のダイジェスト、ビルダー、ビルドタイプとその外部パラメーターを示す in-toto アテステーションです。利用側は使用前に、信頼の起点と期待値に照らして検証します。
-
ビルド時の画像最適化パイプライン:原本、段階的なサイズ、出力形式、メタデータの除去
原本を Web ルートの外に保存し、配信するすべてのサイズと形式を再現可能なビルド工程で生成します。既定で sRGB に変換しメタデータを除去し(sharp は keepMetadata を呼ばない限りそう動作し、cwebp は -metadata で指定しない限り何もコピーしません)、元画像と幅または内容のハッシュで命名して、EXIF や GPS が残っていないことを exiftool で確認します。
-
pyproject.toml で Python プロジェクトをパッケージ化する
pyproject.toml は、ビルドシステム、メタデータ、依存関係を一つの標準ファイルで宣言する(PEP 517/518/621)。対応するツールなら、setup.py なしでプロジェクトをビルド、インストールし、依存関係を固定できる。
-
Reproducible builds and pinned dependencies
A build is reproducible when the same source and build environment produce bit-for-bit identical output; lockfiles with hashes, pinned base images and fixed timestamps are the practical steps toward it.
-
Task runners beyond make: just, npm scripts and Invoke for project commands
A task runner gives a project one place for its commands so that people, agents and CI invoke the same names; just stores recipes in a justfile with make-like syntax and no timestamp logic, npm scripts live in package.json with pre and post hooks, and Invoke turns @task functions in a tasks.py into a command line. Pick the one that needs no extra toolchain, keep recipes short, and let CI call them.
機械可読: JSON