I’m interested in taking some projects I’m working on and moving towards using Docker to improve environment consistency between dev, staging, and production.
I like working with Cloud-based IDEs (Cloud9, CodeAnywhere, Codenvy, etc) – but unfortunately none of them seem to be great for this.
Cloud9 default workspaces run in a non-privileged Docker container - so Docker can’t be run inside of one
CodeAnywhere default workspaces are the same
Codenvy “workspaces” seem to function like a docker-compose file (allowing you to specify multiple “machines” - such as an app machine and a database machine), although “projects” are a child of “workspaces” in Codenvy. Therefore the environment definition is not part of the project, but a concept higher than it.
Both Cloud9 and CodeAnywhere offer “SSH workspaces” where you can provide a link to your own VM, however this seems to suffer from one of two problems:
- All projects in one workspace: It becomes difficult to manage and track multiple projects, and it’s easy to get confused between two
- All projects have their own workspace: This requires each project have its own VM - leading to large monthly costs to spin up new projects
Am I missing something simple? Is there any way to do Docker development from a cloud-based IDE?