4 ms·
Isn't that essentially what Vagrant and Vagrantfiles do?
by All4All 4y ago
Isn't that essentially what Vagrant and Vagrantfiles do?
- xahrepap 4y agoYes, which is what I'm using now. But it doesn't use the Docker APIs to allow you to (mostly) reuse a dockerfile to build a VM or a container. not sure if it would be better than Vagrant. But it was still very interesting.
- hinkley 4y agoWhat is your theory for why Docker won and Vagrant didn't? Mine is that all of the previous options were too Turing Complete, while the Dockerfile format more closely follows the Principle of Least Power. Power users always complain about how their awesome tool gets ignored while 'lesser' tools become popular. And then they put so much energy into apologizing for problems with the tool or deflecting by denigrating the people who complain. Maybe the problem isn't with 'everyone'. Maybe Power Users have control issues, and pandering to them is not a successful strategy.
- pphysch 4y agoThe easier it is for a technology to accidentally make it into production, the more popular it will be
- duskwuff 4y agoWhat turned me off from Vagrant was that Vagrant machines were never fully reproducible. Docker took the approach of specifying images in terms of how to create them from scratch. Vagrant, on the other hand, took the approach of specifying certain details about a machine, then trying to apply changes to an existing machine to get it into the desired state. Since the Vagrantfile didn't (and couldn't) specify everything about that state, you'd inevitably end up with some drift as you applied changes to a machine over time -- a development team using Vagrant could often end up in situations where code behaved differently on two developers' machines because their respective Vagrant machines had gotten into different states. It helped that Docker images can be used in production. Vagrant was only ever pitched as a solution for development; you'd be crazy to try to use it in production.
- mmcnl 4y agoDocker is not fully reproducible either. Try building a Docker image from two different machines and then pushing it to a registry. It will always overwrite.
- egberts1 4y agoOoooh, “it will always overwrite.”: this is like saying an indirect way of saying that your executable will behave exactly the same if it got overwritten (by a same set of bytes). Good one.
- ParetoOptimal 4y agoDockerfiles pervasively use things like `apt-update` and that makes them not reproducible. Even of your image pins apt or yum, images you depend on likely don't. Docker is repeatable, not reproducible.
- egberts1 4y agoYep
- xbfivhvu 4y ago
- hinkley 4y agoI’ve read bug threads in the moby GitHub where they reject a feature because it’s not repeatable, while people point out that Docker files start with apt-get so they aren’t repeatable from layer 2 anyway. The team members don’t seem to hear them and it’s frustrating to watch. Images are repeatable. We like repeatable images. That’s enough for most of us. Don’t break that and we’re good. Just fix build time bullshit please.
- fomine3 4y agoVagrant never targeted production so not much money/resource/interest invested?
- gaocegege 4y agoVagrant images are always huge. But docker images are small. You can deliver and share docker images with ease.