cloud9をdockerで導入し、NginXでリバースプロキシをかけてサブディレクトリでアクセスする
前提
docker
、docker-compose
はインストールされているものとします。- 作業フォルダとファイル構成は以下ファイルツリーの通りです。
docker-compose.yml
、config/nginx.conf
は下記の通りあらかじめ用意しておきます。
workdir │ └ docker-compose.yml │ └─config └─ nginx.conf
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認証パスワード
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のひとつやふたつあると思われますので、動かない等不具合がありましたら、編集リクエストまたはコメントでお知らせください。