Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Docker as a provider #18

Open
rehanift opened this issue Jun 24, 2014 · 2 comments
Open

Add Docker as a provider #18

rehanift opened this issue Jun 24, 2014 · 2 comments

Comments

@rehanift
Copy link

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.

@andrewchilds
Copy link
Owner

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.

@andrewchilds
Copy link
Owner

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...

  1. Would you limit this to linux users only and require a docker binary, or do you also look for and support boot2docker users?

  2. 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]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants