takaya030の備忘録

PHP、Laravel、Docker などの話がメインです

ローカルの Docker 環境で Cloud9 IDE を動かす

Cloud9 IDE を Docker コンテナで動作させたときの手順メモ

検証環境

Windows10 Home Edition
VirtualBox 5.1.22
Docker version 17.05.0-ce, build 89658be
docker-compose version 1.6.2, build 4d72027

インストールにあたっての注意点

  • Cloud9 IDE は node.js で動作しているが、使用するバージョンは v0.10 または v0.12 とする
  • Cloud9 IDE のインストールは一般ユーザー権限で行う

ディレクトリ構成

+---c9
    |   docker-compose.yml
    |   
    +---workspace
    |   
    +---data
    |       Dockerfile
    |       
    +---ide
            Dockerfile

各種設定ファイル

c9/docker-compose.yml

version: "2"
services:
  data:
    build: ./data
    volumes:
      - ./workspace:/workspace
  ide:
    build: ./ide
    volumes_from:
      - data
    volumes:
      - /etc/localtime:/etc/localtime:ro
    ports:
      - "8080:8080"
    command: node /home/docker/cloud9/server.js --port 8080 -w /workspace -l 0.0.0.0 --auth docker:tcuser

c9/data/Dockerfile

FROM busybox
LABEL maintainer "takaya030"

RUN mkdir -p /workspace
VOLUME ["/workspace"]
CMD ["true"]

c9/ide/Dockerfile

FROM ubuntu:16.04
LABEL maintainer "takaya030"

RUN apt-get update -y \
	&& apt-get install -y nodejs npm curl git sudo \
	&& apt-get clean \
	&& rm -fr /var/lib/apt/lists/*

RUN npm cache clean \
	&& npm install n -g

RUN n 0.12.18 \
	&& ln -sf /usr/local/bin/node /usr/bin/node \
	&& apt-get purge -y nodejs npm

# create docker user
RUN useradd -d /home/docker -m -s /bin/bash -u 1000 -g 50 docker

USER 1000
RUN git clone https://github.com/c9/core.git /home/docker/cloud9 \
	&& cd /home/docker/cloud9 \
	&& ./scripts/install-sdk.sh

USER root
RUN mkdir -p /workspace
VOLUME ["/workspace"]
WORKDIR /workspace

USER 1000

イメージのビルド

c9 ディレクトリに移動後、以下のコマンドでイメージをビルドする

$ docker-compose build

動作確認

以下のコマンドで Cloud9 IDE が動作します

$ docker-compose up -d

web ブラウザで http://192.168.99.100:8080 にアクセスすると Basic 認証で UserId と Password の入力を求められるので次の通りに入力する

  • UserId: docker
  • Password: tcuser

その後、以下の画像のように表示されれば成功です
f:id:takaya030:20170725232924p:plain