| ▲ | bmitch3020 3 hours ago | |
Recent versions of buildkit have added support for SOURCE_DATE_EPOC. I've been making the images reproducible before that with my own tooling, regctl image mod [1] to backdate the timestamps. It's not just the timestamps you need to worry about. Tar needs to be consistent with the uid vs username, gzip compression depends on implementations and settings, and the json encoding can vary by implementation. And all this assumes the commands being run are reproducible themselves. One issue I encountered there was how alpine tracks their package install state from apk, which is a tar file that includes timestamps. There are also timestamps in logs. Not to mention installing packages needs to pin those package versions. All of this is hard, and the Dockerfile didn't make it easy, but it is possible. With the right tools installed, reproducing my own images has a documented process [2]. | ||
| ▲ | hsbauauvhabzb 14 minutes ago | parent [-] | |
Does any of that matter if you’re not auditing the packages you install? I’m more concerned about sources being poisoned over the build processes. Xz is a great example of this. | ||