前提
-
docker
、docker-compose
はインストールされているものとします。 - 作業フォルダとファイル構成は以下ファイルツリーの通りです。
-
docker-compose.yml
、config/nginx.conf
は下記の通りあらかじめ用意しておきます。
ファイルツリー
workdir
│ └ docker-compose.yml
│
└─config
└─ nginx.conf
docker-compose.yml
version: '2'
services:
nginx-proxy:
container_name: nginx
image: nginx
prots:
- 80:80
volumes:
- ./config/nginx.conf:/etc/nginx/conf.d/default.conf
links:
- c9:c9
c9:
container_name: c9
image: sshinya/alpine-cloud9
environment:
USERNAME: user # 任意のBASIC認証ユーザ名
PASSWORD: pass # 任意のBASIC認証パスワード
config/nginx.conf
server {
listen 80;
server_name _;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
location /c9/ {
rewrite /c9/(.*)$ /$1 break;
proxy_pass http://c9:8080;
}
location ~ /(configs/|static/|vfs/|_ping)(.*)$ { # _pingの後ろに'/'は無いよ!
proxy_pass http://c9:8080$request_body;
}
}
コンテナの作成
cd workdir
sudo docker-compose up -d
nginx
コンテナとc9
(cloud9)コンテナが作成され、バックグラウンドで起動します。
http://<物理サーバIP>/c9/ide.html
にアクセスするとcloud9が起動します。
<物理サーバIP>
は192.168.0.32
など、適宜インストールしたサーバのものと読み替えてください。
おわりに
VPSのWebシェルを利用しているため、コピペが簡単にできず手打ちで記事を書きました。
おそらくtypoのひとつやふたつあると思われますので、動かない等不具合がありましたら、編集リクエストまたはコメントでお知らせください。