Einführung

Eclipse Theia ist eine erweiterbare Cloud-IDE, die auf einem Remote-Server läuft und von einem Webbrowser aus zugänglich ist. Visual ist sie so konzipiert, dass sie ähnlich wie Microsoft Visual Studio aussieht und sich auch ähnlich verhält. Was Eclipse Theia von anderer Cloud-IDE-Software unterscheidet, ist die Erweiterbarkeit; sie kann mit benutzerdefinierten Erweiterungen modifiziert werden, damit Sie eine Cloud-IDE für Ihre Bedürfnisse erstellen können.

In diesem Tutorial verwenden Sie Eclipse Theia auf Ihrem Ubuntu-18.04-Server mit Docker Compose. Sie machen ihn auf Ihrer Domäne mit nginx-proxy verfügbar und sichern ihn mit einem Let's Encrypt TLS-Zertifikat, dem Sie ein Add-on hinzufügen. Eine ausführlichere Version dieses Tutorials finden Sie unter So richten Sie die Eclipse-Theia-Cloud-IDE-Plattform unter Ubuntu 18.04 ein.

Voraussetzungen

sie illustration for: Voraussetzungen
  • Ein vollständig registrierter Domänenamen. Dieses Tutorial verwendet durchgehend <^>theia.your-domain<^>.
  • Ein DNS-Eintrag mit <^>theia.your-domain<^>, der auf die öffentliche IP-Adresse Ihres Servers verweist. Sie finden in dieser Einführung in DNS hosting Details dazu, wie Sie sie hinzufügen können.

Schritt 1 – Einsatz von nginx-proxy mit Let's Encrypt

Erstellen Sie das Verzeichnis, um alle Daten für Eclipse Theia zu speichern:

				
					
mkdir ~/eclipse-theia

				
			

Navigieren Sie dorthin:

				
					
cd ~/eclipse-theia

				
			

Erstellen Sie nginx-proxy-compose.yaml, um die Docker Compose-Konfiguration für nginx-proxy zu speichern:

				
					
nano nginx-proxy-compose.yaml

				
			

Fügen Sie die folgenden Zeilen hinzu:

				
					
[label ~/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"

				
			

Hier definieren Sie zwei Dienste, die Docker Compose ausführen wird, nginx-proxy und seinen Let's Encrypt-Begleiter. Für den Proxy geben Sie jwilder/nginx-proxy als Image ein, ordnen Sie HTTP- und HTTPS-Ports zu und definieren Sie Volumes, die während der Laufzeit zugänglich sind.

Speichern und schließen Sie die Datei.

Stellen Sie die Konfiguration bereit:

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

				
			

Die endgültige Ausgabe sieht ungefähr so aus:

				
					
[secondary_label 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

				
			

Schritt 2 – Einsatz des dockerisierten Eclipse Theia

nginx-proxy geht davon aus, dass Log-In-Kombinationen in einer Datei vorliegen, die nach der verfügbar gestellten Domäne benannt wurde, im Format htpasswd vorliegen und unter dem Verzeichnis /etc/nginx/htpasswd im Container gespeichert sind.

Installieren Sie htpasswd:

				
					
sudo apt install apache2-utils

				
			

Das apache2-utils-Paket enthält das htpasswd-Dienstprogramm.

Erstellen Sie das Verzeichnis /etc/nginx/htpasswd:

				
					
sudo mkdir -p /etc/nginx/htpasswd

				
			

Erstellen Sie eine Datei, um die Logins für Ihre Domäne zu speichern:

				
					
sudo touch /etc/nginx/htpasswd/&lt;^&gt;theia.your-domain&lt;^&gt;

				
			

Führen Sie den folgenden Befehl mit einem Benutzernamen und einer Passwort-Kombination aus:

				
					
sudo htpasswd /etc/nginx/htpasswd/&lt;^&gt;theia.your-domain&lt;^&gt; &lt;^&gt;username&lt;^&gt;

				
			

htpasswd fügt den Benutzernamen und ein Passwort-Paar mit Hash am Ende der Datei hinzu.

Erstellen Sie die Konfiguration für die Bereitstellung von Eclipse Theia:

				
					
nano eclipse-theia-compose.yaml

				
			

Fügen Sie die folgenden Zeilen hinzu:

				
					
[label ~/eclipse-theia/eclipse-theia-compose.yaml]

version: '2.2'



services:

  eclipse-theia:

    restart: always

    image: theiaide/theia:next

    init: true

    environment:

      - VIRTUAL_HOST=&lt;^&gt;theia.your-domain&lt;^&gt;

      - LETSENCRYPT_HOST=&lt;^&gt;theia.your-domain&lt;^&gt;

				
			

Sie definieren einen einzigen Dienst namens eclipse-theia mit einem restart, der auf always eingestellt ist und theiaide/theia:next als Container-Image. Außerdem setzen Sie init auf true. Dann bestimmen Sie zwei Umgebungsvariablen im Abschnitt environment: VIRTUAL_HOST und LETSENCRYPT_HOST.

Speichern und schließen Sie die Datei.

Stellen Sie jetzt Eclipse Theia bereit, indem Sie Folgendes ausführen:

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

				
			

Der endgültige Ausgabe sieht ungefähr so aus:

				
					
[secondary_label 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

				
			

Navigieren Sie zur Domäne, die Sie für Eclipse Theia verwenden. Ihr Browser zeigt Ihnen eine Eingabeaufforderung, mit der Sie zur Anmeldung aufgefordert werden. Sie rufen Eclipse Theia auf und sehen die Editor-GUI. Außerdem sehen Sie ein Schloss, das anzeigt, dass die Verbindung sicher ist.

Zusammenfassung

Sie haben jetzt Eclipse Theia, eine vielseitige Cloud IDE, auf Ihrem Ubuntu-18.04-Server mit Docker Compose und nginx-proxy installiert. Sie haben es mit einem kostenlosen Let's Encrypt TLS-Zertifikat gesichert und eine Instanz eingerichtet, um Anmeldedaten des Benutzers anzufordern. Sie können damit an Ihrem Quellcode und Dokumenten einzeln arbeiten oder im Team zusammenarbeiten. Sie können auch versuchen, Ihre eigene Version von Eclipse Theia zu erstellen, wenn Sie zusätzliche Funktionen benötigen. Weitere Informationen dazu finden Sie unter Theia Docs.