Add Docker as a provider
rehanift opened this issue · 2 comments
I use Docker instead of Vagrant/VirtualBox for local development.
Is there an interface/specification for creating new providers? I'd like to try and create one for Docker containers.
That's a great idea 👍 👍
The existing providers were all built ad-hoc - I would like to clean that up since behavior and code style across the existing providers are pretty divergent, but I probably won't be getting to that in the near future. That said, if you want to dig in, modules/commands/virtualbox.js
is pretty close to how the code would look if there was a common interface, so I would use that as a starting point.
Hi Rehan, I've just finished cleaning up the codebase and creating a standard provider interface. There is still API complexity under the hood in each modules/providers/[provider].js
, but there is an abstraction layer between the code that talks to the provider API and the standardized modules/provider.js
file, which is now used by all of the provider commands.
If you are still interested in working on a Docker provider, there are a bunch of assumptions that I'm not comfortable making without getting some feedback from people that would use this, for example...
-
Would you limit this to linux users only and require a
docker
binary, or do you also look for and supportboot2docker
users? -
How will provider commands work using Docker? I would expect them to behave like any other provider - meaning that I can create an instance (or container), run commands on it, ssh in, reboot, push/pull files, etc. The minimum command list would probably be:
overcast docker boot [name] overcast docker create [name] [options...] overcast docker destroy [name] [options...] overcast docker reboot [name] overcast docker shutdown [name]