3 ms·
I’m a big fan of containers, but we oughtn’t hold Dockerfiles on a pedestal. They kind of work, but you have to shoehorn a dependency tree into a linear list of
by throwaway894345 5y ago
I’m a big fan of containers, but we oughtn’t hold Dockerfiles on a pedestal. They kind of work, but you have to shoehorn a dependency tree into a linear list of layers in a futile attempt to make build caching work. Moreover, they aren’t reproducible as they tend to rely on arbitrary network calls. To a lesser extent, the semantics are also “imperative commands” rather than “packages to be installed” which is the more natural way to think of composing an image.
I’m of the impression that the underlying BuildKit exposes the requisite dependency tree structure, but it hasn’t found it’s way downstream into the Dockerfile representation (to my knowledge, anyway). There’s also Nix which supports building arbitrary images with an elegant conceptual approach, but everything about Nix in practice seems unworkable for professional software development.