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

docker-machine wrapper #16

Open
cboettig opened this issue Sep 2, 2017 · 6 comments
Open

docker-machine wrapper #16

cboettig opened this issue Sep 2, 2017 · 6 comments

Comments

@cboettig
Copy link

cboettig commented Sep 2, 2017

Hi @leeper , Cloudyr team,

Would you be interested in a package wrapping the docker-machine interface?

docker-machine is essentially just a simple wrapper around the APIs of many common cloud computing platforms (listed below), giving you a more-or-less consistent interface for launching, controlling & stopping an instance with particular specifications on that platform with Docker running on it. Combined with @wch 's harbor package & rocker images this would let users deploy RStudio, Shiny, or long-running Rscripts on a desired platform with one or two lines of code.

A compelling use case for this would be the ability to deploy long-running code on any of these environments in a way that the machine will just shut down once the code has finished running and the results have been pushed to the appropriate place (e.g. S3, github, or similar), avoiding the need to monitor for when a long-running job finishes or incurring use charges for idle compute. (If you know of a better way to do that, I'm all ears).

Here's the platform list supported already by docker-machine:

Amazon Web Services
Microsoft Azure
Digital Ocean
Exoscale
Google Compute Engine
Generic
Microsoft Hyper-V
OpenStack
Rackspace
IBM Softlayer
Oracle VirtualBox
VMware vCloud Air
VMware Fusion
VMware vSphere

@MarkEdmondson1234
Copy link
Contributor

MarkEdmondson1234 commented Sep 2, 2017

I would be all over this, sounds very cool. We spoke before about some kind of meta package over all the cloud services, this sounds like a way in.

Regarding https://github.com/wch/harbor I rely heavily on it but its not on CRAN so I currently import the functions.

I have literally just finished an App Engine application that would cover the use case you mention with long running code - it puts plumber in Rocker then deploys via flexible containers https://github.com/MarkEdmondson1234/serverless-R-API-appengine and I'm working on an RStudio version too https://github.com/MarkEdmondson1234/appengine-rstudio

@leeper
Copy link
Member

leeper commented Sep 2, 2017

Yess!! This would be really great! Travelling at the moment, so can't comment in depth but I'm with @MarkEdmondson1234 - we should definitely have this.

@cboettig
Copy link
Author

cboettig commented Sep 4, 2017

@leeper Should I just create a repo in my own domain to put together a prototype and later transfer, or would it be better to start developing under cloudyr to begin with?

@cboettig
Copy link
Author

cboettig commented Sep 5, 2017

For now, I've just put my prototype here: https://github.com/cboettig/dockermachine. Happy to transfer to cloudyr or flush out more there first. It should have basic functionality to install docker-machine on most platforms and make the usual commands.

@leeper
Copy link
Member

leeper commented Sep 5, 2017

That sounds good - we can transfer later. I'm traveling but will take a look when I can.

@hongooi73
Copy link
Member

@cboettig This looks very useful. Would you have a similar package for talking to the docker client itself?

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

No branches or pull requests

4 participants