4 ms·
(Author here.) That's a good question. In this case, the main benefit I was after was easy setup of consistent development environments. We have in the past (an
by jdleesmiller 10y ago
(Author here.) That's a good question. In this case, the main benefit I was after was easy setup of consistent development environments. We have in the past (and still do) use vagrant + ansible for the same purpose, but Dockerfiles are a lot simpler, and people have been less afraid of changing them vs. the slightly crazy ansible playbooks.
It think it's worked pretty well so far, though we have had a few difficulties:
- Particularly in the early stages of development, we've been changing dependencies a lot, and that requires a lot of image rebuilds. They are very consistent, but also a bit tedious.
- For those of us on macs, using docker machine for development hasn't been all that great, because inotify doesn't work for automatic code reloading (watchify, nodemon, etc.). However, they're hard at work on that with the new Docker for Mac.
I'm hopeful that technologies like kubernetes will make it easier to deploy these containers, too, but I haven't really got there yet. Maybe another article some day!
- hillbilly 10y agoCheck out docker-osx-dev which uses rsync to more efficiently synchronize container volumes with your local files and enable watchers.
- saronia 10y agoThat seems to work only w/ boot2docker. Is it still applicable in the docker-machine era?
- xorcist 10y agoIt's not an either/or scenario. Unless you have a trivial environment, you still need something like Ansible to configure the application in question. Things like setting up monitoring, log transports, certificates, databases etc. needs to be orchestrated outside the container.