Workspace from Dockerfile/Snapshots

docker

#1

Just curious if you have any plans on introducing Workspace creation from a custom Dockerfile?
Or maybe workspace snapshots so that we can reuse certain environments for our development process?

Thanks!


Using Docker inside the dockerized cloud9 hosted environment?
#2

Cloud9 workspaces run within Docker containers. We can’t have docker containers inside our own docker containers because they would need to be privileged, which is a security risk. An alternative is to use SSH workspaces where you can run Docker as you please (though this requires a premium account and your own server).

Workspace creation from custom Dockerfiles would indeed be handy but as far as I know this isn’t something that will be happening in the next few sprints.


#3

Thanks for the response. To make the problem clear:

There is no way to reuse workspaces within a company between employees unless you’re managing your own SSH accessible containers. I guess that’s the only limitation I currently see for your product. Hopefully you’ll provide an alternative to this soon.


#4

Good clarification. Workspace cloning is on the roadmap and that would allow you to configure a dev environment in one workspace then reuse that same setup and configuration.


Create a copy of a Cloud9 environment?
#5

While not directly addressing this, this could be useful on a more general level. We’re taking pull requests for generally common templates. See this blog post for more details: Cloud9 Template Days.


#6

I just recently became a customer and have, from this thread, come to accept you don’t support docker image building, which is a core part of my development workflow.

We can’t have docker containers inside our own docker containers because they would need to be privileged, which is a security risk.

Google Container Engine will soon be adding privileged containers and ECS already supports deployment via automated tasks. Containers are the future of development and ignoring this need will be unfortunate for the future of this company. The statement above is off-base enough to give me confidence that I’m making the right move in dropping my subscription.


#7

Hey @bradydowling, check out this docker blog article @sojka posted:

we put docker in your docker

Continuing the discussion from Using Docker inside the dockerized cloud9 hosted environment?:


This is the hottest Feature Request thread at the time of this posting so @bradydowling and team, you guys should heed the feedback and consider adding this to upcoming sprint like @contained said in his own way. There are also a handful of other threads on here talking about cloning and distributing C9 project… :wink: :chart_with_upwards_trend:


#8

@mikeumus and @contained thanks a bunch for the follow up here. I’ll be honest and say that this is something I need to dig into a little bit more. Give me a bit here and I’ll see what I can find out.


#9

We have a development environment based on Vagrant that manages a Boot2Docker instance. We build and run all sorts of apps within a central VM. I’d love to be able to move this off peoples individual workstations/laptops and onto a remote service like c9.io

While you can build docker containers within a docker container, it might be easier to just allow access to the underlying host.


#10

3 posts were split to a new topic: Android SDK workspace template


#11

Ok so, when might we be able to spin up a workspace from a custom dockerfile inside a repository?


#12

I’m not aware of what kind of time that’d take us technically or if/where it is on the roadmap so of course I can’t give an ETA on that.

That being said, I did just find this article which might help explain why you can’t run Docker inside Cloud9 workspaces (Docker containers): Using Docker-in-Docker for your CI or testing environment? Think twice..

Interestingly enough, this was written by the same gentleman that wrote the previously mentioned Docker can Now Run Inside Docker.


#13

Docker inception will get you in trouble. Trust me as I blew up a workspace today… Sigh


#14

Well, couldn’t support be added to run a custom dockerfile instead of one of the templates that would be provided by a git repo? or am I misunderstanding how the templates work? Of course, docs could be made on how to formulate a dockerfile for the cloud9 systems and whatnot.


#15

Hey @jms1989, there is kind of a system in place for what you mentioned. Checkout the Template Days C9 Blog post here:


#16

+1000 for this feature! I would also love to be able to spawn a workspace from a custom Dockerfile.


#17

The Edit-Build-Run workflow with Docker is close to the holy grail for sandboxes. It guarantees reproducibility as you code and removes the need to struggle through setting up sandboxes. The challenges with this approach is that the build step can take a long time. Luckily the Docker Build Cache means your first build might take 30 minutes, future builds with a properly optimized Dockerfile could take as low as will take 3 seconds. Another way to make your builds faster is working on a beefy machine in a datacenter with a fat pipe. The problem is, not all developers feel comfortable working a remote machine because they don’t know terminal based editors like vim. Cloud9 could facilitate this.

I’ll give SSH workspaces a try and see how it goes. I’m afraid it might still only be something someone who is skilled in DevOps might be able to pull off.


#18

+1 for this, It would be great if we could use c9 for a Dockerfile project.