DEV Community

Robin Kretzschmar
Robin Kretzschmar

Posted on

Isolated DEV environments on docker (moving away from cloud9)

Moving from cloud9 (Cloud IDE with isolated containers) to a local solution I came across ICEcoder as a Browser IDE which I can host myself.


  • Why moving from c9 to local docker containers?
  • Why ICEcoder?
  • Steps to follow

Why c9 -> local docker containers?

I decided to save some money and leave my data on my maschine. Cloud9 runs the ACE Editor connected to containers called workspaces. One can create as many workspaces as needed and access them with an URL and start editing code, accessing terminals and interacting with it via the Browser.
This was indeed very nice especially the fact that those workspaces were isolated containers.
But as mentioned, I want to safe some money and have all my stuff locally for now.
Besides those hard facts, this was a nice project for an evening :)

Why I chose ICEcoder

After trying to setup ACE Editor, I recognized that the nice file browser on c9 is an extension they made and this is not included in the ACE Editor itself. So this was the point I was searching for other browser based IDEs / code editors.
ICEcoder looked nice at the first glance and has a file browser so the decision was made.
Plus: only PHP is needed to run it! Very few dependencies, small space used (compared to a lot of npm modules with ACE!).

Steps to setup

I created a Github repository for easy cloning (and for me also):

GitHub logo DarkSmile92 / rdev-container

Docker container with ace editor


This is a Docker container with ICECoder installed as isolated IDE Environment Just build the base image, then the main image and start it You are ready to develop with the ICECoder Browser IDE.

The idea was to migrate away from cloud9 and still have isolated development environments as containers Docker seemed the right choice for this task and ICECoder looked nice with minimal dependencies.


Build base image and image in one command and then run it

sudo ./ && sudo docker run -p 80:80 -d rdev-container

Build the base image

cd base-image && sudo docker build -t rdev-base . && cd ..

Build the image

sudo docker build -t rdev-container .

Build the image (without cache)

sudo docker build --no-cache -t rdev-container .

Running the image

sudo docker run -p 80:80 -d rdev-container

Where to put your code / project folder?

Put your code under /var/www/…

quick steps - For impatient people

  1. Clone my Github repo
  2. Follow steps in Readme - Quickstart
  3. Open URL: http://localhost/ice
git clone rdev-container
cd rdev-container && sudo sh ./
sudo docker run -p 80:80 --name devEnv1 -d rdev-container
Enter fullscreen mode Exit fullscreen mode

For those who want details

  • Clone my Github repo

git clone rdev-container

  • Build docker base image and the final image

I decided to split it up in case dependencies have to be changed.

  • Run it with a name like devEnv1:

sudo docker run sudo docker run -p 80:80 --name devEnv1 -d rdev-container


ICEcoder view

Top comments (6)

ben profile image
Ben Halpern

When I saw DEV in all caps I thought this might have been about getting our repo running in a cloud IDE, which I would be very in favor of. πŸ˜‹

darksmile92 profile image
Robin Kretzschmar

Lemme see if I manage to get it working, then I'll post the Dockerfile for it :)

ben profile image
Ben Halpern

There's currently some work happening on the Docker front, I'm not super involved with that so I can't say exactly where things are with that.

In general, I really love the idea of eventually having the repo up and running in a web IDE. I think it could dramatically lower the barrier to entry.

kalinchernev profile image
Kalin Chernev

Hi Robin, have you evaluated
A friend who loves Docker used it a lot

darksmile92 profile image
Robin Kretzschmar

Hi Kalin, I did not hear of Eclipse Che before. Seems interesting to me, thanks for the link! Will build an image with it and try it out :)

rzprrtkgolyd4ug profile image

I recommend goormIDE. goormIDE also provides docker-based containers.