Eclipse Theia — это расширяемая облачная IDE, запущенная на удаленном сервере и доступная в браузере. Внешне она выглядит и работает наподобие Microsoft Visual Studio Code. Отличие Eclipse Theia от других облачных IDE состоит в возможности расширения; ее можно изменять с помощью пользовательских расширений, что позволяет получить облачную IDE, настроенную под ваши нужды.
В этом обучающем руководстве мы выполним развертывание Eclipse Theia на сервере Ubuntu 18.04 с помощью Docker Compose. Мы подключим среду к домену с помощью nginx-proxy и защитим ее TLS-сертификатом Let’s Encrypt, выделяемым с помощью дополнительной надстройки. Более подробное описание можно найти в обучающем руководстве Настройка облачной IDE-платформы Eclipse Theia в Ubuntu 18.04.
theia.your-domain
.theia.your-domain
, указывающим на публичный IP-адрес вашего сервера. В руководстве Введение в DigitalOcean DNS содержится подробная информация по их добавлению.Создайте директорию для хранения всех данных Eclipse Theia:
- mkdir ~/eclipse-theia
Перейдите в директорию:
- cd ~/eclipse-theia
Создайте файл nginx-proxy-compose.yaml
для сохранения конфигурации Docker Compose для nginx-proxy
:
- nano 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"
Здесь мы определяем две службы, которые будет выполнять Docker Compose, nginx-proxy
и его спутник Let’s Encrypt. Для прокси вы должны задать в качестве образа jwilder/nginx-proxy
, разметить порты HTTP и HTTPS, а также определить тома, которые будут доступны во время исполнения.
Сохраните и закройте файл.
Разверните конфигурацию:
- docker-compose -f nginx-proxy-compose.yaml up -d
Итоговый результат будет выглядеть следующим образом:
OutputCreating 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
nginx-proxy
ожидает, что комбинации для входа будут находиться в файле с именем подключенного домена, который имеет формат htpasswd
и хранится в директории /etc/nginx/htpasswd
в контейнере.
Выполните установку htpasswd
:
- sudo apt install apache2-utils
Пакет apache2-utils
содержит утилиту htpasswd
.
Создайте директорию /etc/nginx/htpasswd
:
- sudo mkdir -p /etc/nginx/htpasswd
Создайте файл для сохранения учетных данных вашего домена:
- sudo touch /etc/nginx/htpasswd/theia.your-domain
Запустите следующую команду, указав комбинацию имени пользователя и пароля:
- sudo htpasswd /etc/nginx/htpasswd/theia.your-domain username
htpasswd
добавит имя пользователя и пароль в конец файла.
Создайте конфигурацию для развертывания Eclipse Theia:
- nano 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-theia
, задаете для параметра restart
значение always
и определяете theiaide/theia:next
как образ контейнера. Также вы задаете для init
значение true
. Затем нужно задать две переменные среды в разделе environment
: VIRTUAL_HOST
и LETSENCRYPT_HOST
.
Сохраните и закройте файл.
Теперь выполните развертывание Eclipse Theia с помощью следующей команды:
- 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
Перейдите в домен, который вы используете для Eclipse Theia. Ваш браузер будет отображать запрос на выполнение входа. Вы войдете в Eclipse Theia и увидите графический интерфейс редактора. Также вы увидите символ замка, показывающий, что соединение является защищенным.
Теперь вы можете использовать Eclipse Theia, универсальную облачную IDE, которая установлена на вашем сервере Ubuntu 18.04 с помощью Docker Compose и nginx-proxy
. Вы обеспечили безопасность вашей установки с помощью бесплатного TLS-сертификата Let’s Encrypt и создали экземпляр для запроса учетных данных пользователя при входе. Вы можете работать с исходным кодом и документами индивидуально или вместе с вашей командой. Также вы можете попробовать выполнить сборку вашей собственной версии Eclipse Theia, если вам требуются дополнительные функции. Дополнительную информацию о том, как это можно сделать, см. в документации Theia.
Join our DigitalOcean community of over a million developers for free! Get help and share knowledge in our Questions & Answers section, find tutorials and tools that will help you grow as a developer and scale your project or business, and subscribe to topics of interest.
Sign up