Как установить Eclipse IDE Theia Cloud на Ubuntu 18.04

12 set 2022 7 min di lettura
Как установить Eclipse IDE Theia Cloud на Ubuntu 18.04
Indice dei contenuti

Введение

С перемещением инструментов разработки в облако растет внедрение облачных платформ интегрированной среды разработки (IDE). Облачные IDE доступны со всех видов современных устройств через веб-браузеры и предлагают многочисленные преимущества для сценариев совместной работы в реальном времени. Работа в облачной IDE обеспечивает унифицированную среду разработки и тестирования для вас и вашей команды, сводя к минимуму несовместимость платформ. Облачные IDE, доступные через веб-браузер, доступны со всех типов современных устройств.

Eclipse Theia — это расширяемая облачная среда разработки, работающая на удаленном сервере и доступная из веб-браузера. Визуально он разработан так, чтобы выглядеть и вести себя аналогично Microsoft Visual Studio, что означает, что он поддерживает множество языков программирования, имеет гибкую компоновку и имеет встроенный терминал. Что отличает Eclipse Theia от другого облачного программного обеспечения IDE, так это его расширяемость; его можно изменить с помощью пользовательских расширений, которые позволяют создать облачную IDE, соответствующую вашим потребностям.

В этом руководстве вы развернете Eclipse Theia на своем сервере Ubuntu 18.04 с помощью Docker Compose, инструмента оркестрации контейнеров. Вы предоставите его своему домену с помощью nginx-proxy, автоматизированной системы для Docker, которая упрощает процесс настройки Nginx для работы в качестве обратного прокси-сервера для контейнера. Вы также защитите его с помощью бесплатного TLS-сертификата Let's Encrypt, который он предоставит с помощью своего специализированного дополнения. В конце концов, у вас будет Eclipse Theia, работающий на вашем сервере Ubuntu 18.04, доступный через HTTPS и предлагающий пользователю войти в систему.

Предпосылки

Если вы намерены установить Eclipse IDE Theia Cloud на удаленный сервер, продолжайте чтение, в противном случае пропустите первый абзац «Подключение к серверу» и прочитайте следующий.

Подключение к серверу

Чтобы получить доступ к серверу, вам нужно знать IP-адрес. Вам также потребуется ваше имя пользователя и пароль для аутентификации. Чтобы подключиться к серверу как root, введите следующую команду:

ssh root@IP_DEL_SERVER

Далее вам нужно будет ввести пароль пользователя root.

Если вы не используете пользователя root, вы можете войти под другим именем пользователя с помощью той же команды, а затем изменить root на свое имя пользователя:

ssh nome_utente@IP_DEL_SERVER

Затем вам будет предложено ввести пароль пользователя.

Стандартный порт для подключения по ssh — 22, если ваш сервер использует другой порт, вам нужно будет указать его с помощью параметра -p, затем введите следующую команду:

ssh nome_utente@IP_DEL_SERVER -p PORTA

Настройте nginx-прокси с помощью Let’s Encrypt

В этом разделе вы развернете nginx-proxy и его надстройку Let's Encrypt с помощью Docker Compose. Это позволит автоматически предоставлять и обновлять сертификат TLS, чтобы при развертывании Eclipse Theia он был доступен в вашем домене через HTTPS.

Для целей этого руководства все файлы будут храниться в ~/eclipse-theia. Создайте каталог, выполнив следующую команду:

mkdir ~/eclipse-theia

Перейдите к нему:

cd ~/eclipse-theia

Вы сохраните конфигурацию Docker Compose для nginx-proxy в файле с именем nginx-proxy-compose.yaml. Создайте его с помощью текстового редактора:

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 и определите тома, которые будут ему доступны во время выполнения.

Тома — это каталоги на вашем сервере, к которым определенная служба будет иметь полный доступ, которые вы позже будете использовать для настройки аутентификации пользователей. Для этого вы будете использовать первый том из списка, который сопоставляет локальный /etc/nginx/htpasswd с тем же контейнером. В этой папке nginx-proxy ожидает найти файл с таким же именем, как и у целевого домена, содержащий учетные данные для входа в систему для аутентификации пользователя в формате htpasswd ( username:hashed_password ).

Для надстройки вы даете имя образу Docker и разрешаете доступ к сокету Docker, определяя том. Затем вы указываете, что надстройка должна наследовать доступ к томам, определенным для nginx-proxy. Обе службы имеют параметр restart, установленный на always, что указывает Docker перезапускать контейнеры в случае сбоя или перезапуска системы.

Сохраните и закройте файл.

Примените конфигурацию, выполнив эту команду:

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

Здесь вы передаете имя файла nginx-proxy-compose.yaml параметру -f команды docker-compose, который указывает файл для запуска. Затем он передает аргумент up, который говорит ему запустить контейнеры. Флаг -d включает отсоединенный режим, что означает, что Docker Compose будет запускать контейнеры в фоновом режиме.

Окончательный вывод будет выглядеть так:

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

Вы развернули nginx-proxy и компонент Let’s Encrypt с помощью Docker Compose. Теперь вы перейдете к настройке Eclipse Theia в своем домене и его защите.

Настройка Dockerized Eclipse Theia

В этом разделе вы создадите файл, содержащий все разрешенные комбинации доступа, которые потребуется ввести пользователю. Затем вы развернете Eclipse Theia на своем сервере с помощью Docker Compose.

Как объяснялось на предыдущем шаге, nginx-proxy ожидает, что комбинации доступа будут находиться в файле, названном в честь выставленного домена, в формате htpasswd и сохраненном в каталоге в /etc/nginx/htpasswd. Локальный каталог, который сопоставляется с виртуальным каталогом, не обязательно должен совпадать с указанным в конфигурации nginx-proxy.

Для создания комбинаций доступа необходимо сначала установить 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

Не забудьте заменить theia.your_domain на свой собственный домен.

Чтобы добавить комбинацию имени пользователя и пароля, выполните следующую команду:

sudo htpasswd /etc/nginx/htpasswd/theia.your_domain username

Замените username на имя пользователя, которое вы хотите добавить. Вам будет предложено ввести пароль дважды. После его предоставления htpasswd добавит пару хешированных имени пользователя и пароля в конец файла. Вы можете повторить эту команду для всех логинов, которые хотите добавить.

Теперь вы создадите конфигурацию для развертывания Eclipse Theia. Вы сохраните его в файле с именем eclipse-theia-compose.yaml. Создайте его с помощью текстового редактора:

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, чтобы указать Docker использовать init в качестве основного обработчика процесса при запуске Eclipse Theia внутри контейнера.

Затем вы указываете две переменные среды в разделе environment: VIRTUAL_HOST и LETSENCRYPT_HOST. Первый используется с nginx-proxy, который сообщает ему, к какому домену должен быть открыт контейнер, а второй используется надстройкой Let's Encrypt и указывает, для какого домена запрашивать сертификаты TLS. Если вы не укажете подстановочный знак в качестве значения для VIRTUAL_HOST, они должны быть одинаковыми.

Не забудьте заменить theia.your_domain на нужный домен, затем сохраните и закройте файл.

Теперь разверните Eclipse Theia, запустив:

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

Окончательный вывод будет выглядеть так:

...
 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 и сразу увидите графический интерфейс редактора. В адресной строке вы увидите замочек, указывающий на то, что соединение защищено. Если вы не видите его сразу, подождите несколько минут, пока сертификаты TLS будут подготовлены, а затем перезагрузите страницу.

Теперь, когда вы можете безопасно войти в свою облачную IDE, вы начнете использовать редактор на следующем шаге.

Используйте интерфейс Eclipse Theia

В этом разделе вы познакомитесь с некоторыми функциями интерфейса Eclipse Theia.

В левой части IDE расположен вертикальный ряд из четырех кнопок, которые открывают наиболее часто используемые функции боковой панели.

Эта панель настраивается, поэтому вы можете перемещать эти представления в другом порядке или удалять их с панели. По умолчанию первое представление открывает панель Explorer, которая обеспечивает древовидную навигацию по структуре проекта. Здесь вы можете управлять своими папками и файлами, создавая, удаляя, перемещая и переименовывая их по мере необходимости.

После создания нового файла через меню « Файл » вы увидите пустой файл, открытый в новой вкладке. После сохранения вы можете просмотреть имя файла на боковой панели Проводника. Чтобы создать папки, щелкните правой кнопкой мыши боковую панель проводника и выберите « Новая папка ». Вы можете развернуть папку, щелкнув ее имя, а также перетащив файлы и папки в верхнюю часть иерархии, чтобы переместить их в новое место.

Следующие две опции обеспечивают доступ к функциям поиска и замены. Далее в следующем представлен обзор систем управления исходным кодом, которые вы можете использовать, например Git.

Последнее представление — это опция отладчика, которая обеспечивает все общие действия по отладке на панели. Конфигурации отладки можно сохранить в файле launch.json.

Центральной частью графического интерфейса является ваш редактор, который вы можете разделить на вкладки для редактирования кода. Вы можете изменить вид редактирования в сетке или в соседних рядах. Как и все современные IDE, Eclipse Theia поддерживает подсветку синтаксиса кода.

Вы можете получить доступ к терминалу, набрав CTRL+SHIFT+` или щелкнув Терминал в верхнем меню и выбрав Новый Терминал. Терминал откроется в нижней панели, а его рабочий каталог будет установлен в рабочей области проекта, которая содержит файлы и папки, показанные на боковой панели Проводника.

Вывод

Теперь у вас есть Eclipse Theia, универсальная облачная IDE, установленная на вашем сервере Ubuntu 18.04 с помощью Docker Compose и nginx-proxy. Вы защитили его с помощью бесплатного TLS-сертификата Let’s Encrypt и настроили экземпляр для запроса учетных данных пользователя.

Buy me a coffeeBuy me a coffee

Supportaci se ti piacciono i nostri contenuti. Grazie.

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.