loading...

Isolated DEV environments on docker (moving away from cloud9)

darksmile92 profile image Robin Kretzschmar ・2 min read

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.

TOC:

  • 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

rdev-container

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.

Quickstart

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

sudo ./build.sh && 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 https://github.com/DarkSmile92/rdev-container rdev-container
cd rdev-container && sudo sh ./build.sh
sudo docker run -p 80:80 --name devEnv1 -d rdev-container

For those who want details

  • Clone my Github repo

git clone https://github.com/DarkSmile92/rdev-container 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

Result

ICEcoder view

Posted on by:

darksmile92 profile

Robin Kretzschmar

@darksmile92

Started coding at the age of 13, now a professional software engineer creating and maintaining enterprise solutions. Eat - Sleep - Code - Lift - Repeat πŸ’ͺ🏾

Discussion

markdown guide
 

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. πŸ˜‹

 

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

 

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.

 

Hi Robin, have you evaluated eclipse.org/che/
A friend who loves Docker used it a lot

 

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 :)

 

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