24 comments

[ 2.0 ms ] story [ 70.8 ms ] thread
So this is a wrapper around a wrapper around a wrapper around linux containers? Is there any level at which this ever becomes user friendly?
we need to go deeper
Maybe you can wrap it again to make it user friendly?
Needs a middleware abstraction layer.
Docker... it's wrappers all the way down...
systemd-nspawn seems like it makes sense...
Is this a joke?
I smiled to myself for a moment and that was immediately followed by that question.
I sympathize with this question but I think this thread is actually mocking someone's well-intentioned and serious project. Personally I have at minimum a "dc" alias and I can totally see how one might start evolving that into a shell wrapper to make your common tasks less verbose. But perhaps the author envisioned it saving more typing and being more generally useful than it is, and also under-estimated the importance of the increased surface for errors and bugs that the project brings.
would you recommend it over docker-compose? Because I'm really searching for an alternative and it's in go, that's even better for me
I'm using azk[0] for my development workflow with 30+ services defined in one Azkfile.js. It automatically setups http load balancers and dns services for you, no need for container linking.

[0] https://github.com/azukiapp/azk

What docker compose needs is a scheduler
you can use it (with caveats) docker swarm.
Does any of these solutions give me back live-reload when developing web apps on OSX ?

As far as I know the code is uploaded into the container and only gets replaced when the image is re-created. At which point there are issues with private git dependencies because it can't access the SSH_AUTH_SOCK.

You could host a volume into your container containing the code base. Then use any standard live reloading library to make it work.
If the live reloading library relies on inotifywait, it won't detect changes made on the OSX side across the volume due to issues with Virtual Box. I made a utility that I run in my container while I'm developing to trigger these events: https://github.com/sillypog/inotify-proxy
We run containers locally for components that our code needs, i.e. if the code needs redis, or elasticsearch or whatever it's easier to spin up a local container, keeps the dev system free of clutter, and what you're running can often be the same or very close to what is in prod. For our own code, why should it care whether it is running in a container or not? We develop locally on the host and package into a container at deployment.
Wrappers all the way down!