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
Schritt 1 – Einsatz von nginx-proxy mit Let’s Encrypt
Erstellen Sie das Verzeichnis, um alle Daten für Eclipse Theia zu speichern:
Navigieren Sie dorthin:
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:
~/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:
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/theia.your-domain
Führen Sie den folgenden Befehl mit einem Benutzernamen und einer Passwort-Kombination aus:
- sudo htpasswd /etc/nginx/htpasswd/theia.your-domain username
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:
~/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
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:
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.