概要
- Arch Linux が新たに bit-for-bit再現可能なDockerイメージ を公開
- 再現性の確保 のため、pacmanの鍵が初期状態で除去されている
- 専用タグ“repro” で配布、利用時は鍵の再生成が必要
- イメージの再現性 はdigest一致やdiffociで確認済み
- 今後は自動再ビルドや公開検証の計画も検討中
Arch Linuxのbit-for-bit再現可能なDockerイメージ公開
- Arch Linux が bit-for-bitで再現可能なDockerイメージ をリリース
- “repro”タグ で配布し、通常のイメージとは区別
- 再現性確保 のため、イメージから pacmanの鍵 を削除
- pacmanは初期状態で利用不可
- ユーザーはpacman鍵の再生成が必要
- コマンド例:
pacman-key --init && pacman-key --populate archlinux - Dockerfile内RUN文や初回起動時の手動実行で対応
- コマンド例:
- Distrobox利用者 はpre-init hookで自動化可能
- 例:
distrobox create -n arch-repro -i docker.io/archlinux/archlinux:repro --pre-init-hooks "pacman-key --init && pacman-key --populate archlinux"
- 例:
- イメージの再現性検証
- digest一致 (
podman inspect --format '{{.Digest}}' <image>) - diffoci によるビルド比較
- digest一致 (
- ドキュメント で再現手順を公開
Dockerイメージ再現性の技術的工夫
- WSLイメージ と同じrootFSビルドシステムを利用
- Docker固有の調整点
- SOURCE_DATE_EPOCH の設定とDockerfile内LABELでの反映
- ldconfigのauxiliary cacheファイル (非決定性の原因)を削除
- タイムスタンプの正規化 --source-date-epoch, --rewrite-timestampオプションで対応
- 具体的な差分や詳細 はarchlinux-dockerリポジトリで参照可能
今後の展望とコミュニティへのメッセージ
- reproducible builds推進 の一環として重要なマイルストーン
- 自動再ビルド・検証システム の導入も検討中
- サーバー上でDocker/WSLイメージを定期的に再ビルド
- 再現性検証とビルドログの公開予定
- コミュニティの協力 と今後の発展への期待