4 ms·
Yes, this is exactly right. Dependency management is a hard problem, and with Docker you only have to get it right once. I think Docker wouldn't exist if Amazon
by cwp 7y ago
Yes, this is exactly right. Dependency management is a hard problem, and with Docker you only have to get it right once. I think Docker wouldn't exist if Amazon had shipped a way to build and test an AMI locally.
- takeda 7y agoThere is already a solutions such as Guix and Nix, but then people aren't willing to learn a new language that allows expressing dependencies. Docker solves dependencies in same way a disk image does, you save the image and it should look the same way each time you look at it. The Dockerfile is not a reproducible though, you just list steps iteratively to generate an image, but it doesn't guarantee to produce the same result. I saw multiple times scenario that docker image built fine for one person and didn't work for another. The main reason for it is that majority of Dockerfiles rely on network to build the image and files received (or even your apt-get command) might produce different results for different people. Recently I saw example where even a docker image built on build system didn't work on deployments system. Both machines of course were x86_64. Turned out that one of dependencies enabled compile optimizations for the CPU it was built on. You could argue that it isn't Docker's fault, but isn't its promise to provide reproducible builds?
- cwp 7y agoAgreed. Nix and Guix actually solve the dependency problem, Docker allows you to work around it. But a work around is better than nothing.
- takeda 7y agoWell, but my point there isn't nothing, there are alternatives, which can (or at least nix can) generate docker or OCI containers. Docker is trying to sell itself as something more than it is, in reality it is just an overglorified zip file.
- deleted 7y ago[deleted]