序章

Eclipse Theia は、リモートサーバー上で実行され、Webブラウザーからアクセスできる拡張可能なクラウドIDEです。 視覚的には、 Microsoft Visual StudioCodeと同様の外観と動作をするように設計されています。 Eclipse Theiaを他のクラウドIDEソフトウェアと区別するのは、その拡張性です。 カスタム拡張機能を使用して変更できます。これにより、ニーズに合ったクラウドIDEを作成できます。

このチュートリアルでは、DockerComposeを使用してEclipseTheiaをUbuntu18.04サーバーにデプロイします。 nginx-proxy を使用してドメインで公開し、 Let’sEncryptTLS証明書で保護します。これはアドオンでプロビジョニングします。 。 このチュートリアルのより詳細なバージョンについては、 Ubuntu18.04でEclipseTheiaCloudIDEプラットフォームをセットアップする方法を参照してください。

前提条件

  • Ubuntu 18.04の初期サーバーセットアップガイドに準拠した、root権限を持つUbuntu18.04サーバーとroot以外のセカンダリアカウント。
  • サーバーにDockerがインストールされている場合は、 Ubuntu18.04にDockerをインストールする方法のステップ1およびステップ2に従います。
  • サーバーにDockerComposeがインストールされている場合は、 Ubuntu18.04にDockerComposeをインストールする方法のステップ1に従ってください。
  • 完全に登録されたドメイン名。 このチュートリアルでは、 theia.your-domain 全体を通して。
  • のDNSレコード theia.your-domain サーバーのパブリックIPアドレスを指します。 それらを追加する方法の詳細については、このDigitalOceanDNSの紹介に従ってください。

ステップ1—Let’sEncryptを使用してnginx-proxyをデプロイする

EclipseTheiaのすべてのデータを保存するディレクトリを作成します。

  1. mkdir ~/eclipse-theia

そこに移動します:

  1. cd ~/eclipse-theia

作成 nginx-proxy-compose.yaml DockerCompose構成を保存する nginx-proxy:

  1. nano nginx-proxy-compose.yaml

次の行を追加します。

〜/ eclipse-theia / nginx-proxy-compose.yaml
version: '2'

services:
  nginx-proxy:
    restart: always
    image: jwilder/nginx-proxy
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - "/etc/nginx/htpasswd:/etc/nginx/htpasswd"
      - "/etc/nginx/vhost.d"
      - "/usr/share/nginx/html"
      - "/var/run/docker.sock:/tmp/docker.sock:ro"
      - "/etc/nginx/certs"

  letsencrypt-nginx-proxy-companion:
    restart: always
    image: jrcs/letsencrypt-nginx-proxy-companion
    volumes:
      - "/var/run/docker.sock:/var/run/docker.sock:ro"
    volumes_from:
      - "nginx-proxy"

ここでは、DockerComposeが実行する2つのサービスを定義しています。 nginx-proxy そしてそのLet’sEncryptコンパニオン。 プロキシには、次のように指定します jwilder/nginx-proxy イメージとして、HTTPポートとHTTPSポートをマップし、実行時にアクセスできるボリュームを定義します。

ファイルを保存して閉じます。

構成をデプロイします。

  1. docker-compose -f nginx-proxy-compose.yaml up -d

最終的な出力は次のようになります。

Output
Creating network "eclipse-theia_default" with the default driver Pulling nginx-proxy (jwilder/nginx-proxy:)... latest: Pulling from jwilder/nginx-proxy 8d691f585fa8: Pull complete 5b07f4e08ad0: Pull complete ... Digest: sha256:dfc0666b9747a6fc851f5fb9b03e65e957b34c95d9635b4b5d1d6b01104bde28 Status: Downloaded newer image for jwilder/nginx-proxy:latest Pulling letsencrypt-nginx-proxy-companion (jrcs/letsencrypt-nginx-proxy-companion:)... latest: Pulling from jrcs/letsencrypt-nginx-proxy-companion 89d9c30c1d48: Pull complete 668840c175f8: Pull complete ... Digest: sha256:a8d369d84079a923fdec8ce2f85827917a15022b0dae9be73e6a0db03be95b5a Status: Downloaded newer image for jrcs/letsencrypt-nginx-proxy-companion:latest Creating eclipse-theia_nginx-proxy_1 ... done Creating eclipse-theia_letsencrypt-nginx-proxy-companion_1 ... done

ステップ2— DockerizedEclipseTheiaをデプロイする

nginx-proxy ログインの組み合わせは、公開されたドメインにちなんで名付けられたファイルにあると想定しています。 htpasswd フォーマットして下に保存 /etc/nginx/htpasswd コンテナ内のディレクトリ。

インストール htpasswd:

  1. sudo apt install apache2-utils

The apache2-utils パッケージには、 htpasswd 効用。

を作成します /etc/nginx/htpasswd ディレクトリ:

  1. sudo mkdir -p /etc/nginx/htpasswd

ドメインのログインを保存するファイルを作成します。

  1. sudo touch /etc/nginx/htpasswd/theia.your-domain

ユーザー名とパスワードの組み合わせを使用して、次のコマンドを実行します。

  1. sudo htpasswd /etc/nginx/htpasswd/theia.your-domain username

htpasswd ユーザー名とハッシュ化されたパスワードのペアをファイルの最後に追加します。

EclipseTheiaのデプロイメントの構成を作成します。

  1. nano eclipse-theia-compose.yaml

次の行を追加します。

〜/ eclipse-theia / eclipse-theia-compose.yaml
version: '2.2'

services:
  eclipse-theia:
    restart: always
    image: theiaide/theia:next
    init: true
    environment:
      - VIRTUAL_HOST=theia.your-domain
      - LETSENCRYPT_HOST=theia.your-domain

と呼ばれる単一のサービスを定義します eclipse-theiarestart に設定 alwaystheiaide/theia:next コンテナイメージとして。 あなたも設定します inittrue. 次に、で2つの環境変数を指定します environment セクション: VIRTUAL_HOSTLETSENCRYPT_HOST.

ファイルを保存して閉じます。

次に、以下を実行してEclipseTheiaをデプロイします。

  1. docker-compose -f eclipse-theia-compose.yaml up -d

最終的な出力は次のようになります。

Output
... Pulling eclipse-theia (theiaide/theia:next)... next: Pulling from theiaide/theia 63bc94deeb28: Pull complete 100db3e2539d: Pull complete ... Digest: sha256:c36dff04e250f1ac52d13f6d6e15ab3e9b8cad9ad68aba0208312e0788ecb109 Status: Downloaded newer image for theiaide/theia:next Creating eclipse-theia_eclipse-theia_1 ... done

EclipseTheiaに使用しているドメインに移動します。 ブラウザに、ログインを求めるプロンプトが表示されます。 Eclipse Theiaに入り、そのエディターGUIが表示されます。 接続が安全であることを示す南京錠も表示されます。

結論

これで、DockerComposeとを使用してUbuntu18.04サーバーに多用途のクラウドIDEであるEclipseTheiaがインストールされました。 nginx-proxy. 無料のLet’sEncryptTLS証明書で保護し、ユーザーからのログイン資格情報を要求するようにインスタンスを設定しました。 ソースコードとドキュメントを個別に処理することも、チームと協力することもできます。 追加の機能が必要な場合は、独自のバージョンのEclipseTheiaを作成してみることもできます。 これを行う方法の詳細については、 Theiadocsにアクセスしてください。