Cloud9をDockerで動かしてみる。
Cloud9: https://github.com/c9/core/
READMEによると以下のステップで使えるようになるらしい。
git clone https://github.com/c9/core.git c9sdk
cd c9sdk
scripts/install-sdk.sh
node server.js
結論
https://gist.github.com/fkmt-disk/d50dca8e0841df5a14641f6db45aab9a
↑ここに置いた。
環境は以下のとおり。
- macOS High Sierra 10.13.5
- Docker CE Version 18.03.1-ce-mac65 (24312)
- https://github.com/c9/core.git (d8917f33fd7d32141d895fb7de530cfee2a416cf)
2018-07-08追記
- aws-cli, localstask, apex をDockerfileに追加
- workspaceの設定をdocker-composeに追加
試行錯誤のログ
とりあえず手でやってみる
docker-compose.yml :
version: "3"
services:
centos:
image: centos:7
# 8181番を使うらしいので開けておく
docker-compose run -p 8181:8181 centos bash
git clone https://github.com/c9/core.git c9sdk
# gitがない、と言われる
yum install -y git
git clone https://github.com/c9/core.git c9sdk
cd c9sdk
scripts/install-sdk.sh
# developmentをgroupinstallしろ、と言われる
yum groupinstall -y development
scripts/install-sdk.sh
# glibc-staticを入れろ、と言われる
yum install -y glibc-static
#> scripts/install-sdk.sh: line 97: which: command not found
# のように言われているので、ついでにWhichも入れる
# ・・・whichってどのパッケージ?
yum whatprovides which
# whichはwhichらしい
yum install -y which
# 3度目のチャレンジ
scripts/install-sdk.sh
#> Success!
#> run 'node server.js -p 8080 -a :' to launch Cloud9
# やったぜ!
# 起動コマンドがREADMEと若干違う・・・
# `-p` はたぶんポートだろう。
# `-a` はなにか・・・?
# READMEに戻ってよく読むと
# `--auth Basic Auth username:password`
# とのこと。
# 起動してみる
node server.js -p 8181 -a :
#> bash: node: command not found
# そうですか。。。
# 入れる
yum install -y node
#> No package node available.
# ほう・・・
yum install -y nodejs
#> No package nodejs available.
# むう、、、epelか?
yum install -y epel-release
yum install -y nodejs
# 入った
node -v
#> v6.14.2
# 古いなぁ、、、大丈夫か?
# リトライ
node server.js -p 8181 -a :
#> Starting standalone
#> Connect server listening at http://127.0.0.1:8181
#> CDN: version standalone initialized /c9sdk/build
#> Started '/c9sdk/configs/standalone' with config 'standalone'!
#> Cloud9 is up and running
http://127.0.0.1:8181
アクセスしてみるが動いてない。。。
コンテナの外に出てポートフォワードを確認してみる。
docker-compose ps
#> Name Command State Ports
#> ---------------------------------------------------------------
#> centos7_centos_run_1 bash Up 0.0.0.0:8181->8181/tcp
開いてるっぽい。
READMEに立ち戻る。
--listen IP address of the server
←これか?
# コンテナの中
# リトライ
node server.js -p 8181 --listen 0.0.0.0 -a :
あ、Workspace指定しないとダメだな。
Dockerfileにする
動くようなのでDockerfileにする。
Dockerfile :
FROM centos:7
RUN yum install -y epel-release
RUN yum groupinstall -y development
RUN yum install -y git glibc-static which nodejs
RUN git clone https://github.com/c9/core.git /c9sdk && cd /c9sdk && scripts/install-sdk.sh
RUN mkdir /c9sdk/workspace
WORKDIR /c9sdk/workspace
EXPOSE 8181
docker-compose :
version: "3"
services:
cloud9:
build:
context: "."
ports:
- "8181:8181"
command: "node /c9sdk/server.js -w /c9sdk/workspace --port 8181 --listen 0.0.0.0 --auth :"
いざ。
docker-compose up -d --build
できましたー。