LoginSignup
1
2

More than 3 years have passed since last update.

cloud9をdockerで導入し、NginXでリバースプロキシをかけてサブディレクトリでアクセスする

Last updated at Posted at 2019-04-28

前提

  1. dockerdocker-composeはインストールされているものとします。
  2. 作業フォルダとファイル構成は以下ファイルツリーの通りです。
  3. docker-compose.ymlconfig/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のひとつやふたつあると思われますので、動かない等不具合がありましたら、編集リクエストまたはコメントでお知らせください。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2