分类
文章

如何在CentOS 7上设置Eclipse Theia Cloud IDE平台

介绍

随着开发人员工具转移到云中,对云IDE(集成开发环境)平台的采用正在增长。可以通过Web浏览器从各种类型的现代设备访问Cloud IDE,它们为实时协作场景提供了众多优势。在云IDE中工作可为您和您的团队提供统一的开发和测试环境,同时最大程度地减少平台不兼容性。可以通过Web浏览器访问,各种类型的现代设备都可以使用Cloud IDE。

Eclipse Theia是运行在远程服务器上的可扩展云IDE,可从Web浏览器访问。在视觉上,它的外观和行为与Microsoft Visual Studio Code相似,这意味着它支持多种编程语言,灵活的布局并具有集成的终端。Eclipse Theia与其他Cloud IDE软件的不同之处在于其可扩展性。可以使用自定义扩展对其进行修改,这使您可以制作适合自己需求的云IDE。

在本教程中,您将使用容器编排工具Docker Compose将Eclipse Theia部署到CentOS 7服务器。您将使用nginx-proxy(一个针对Docker的自动化系统)在您的域中公开它,该系统可简化将Nginx配置为充当容器的反向代理的过程。您还将使用免费的Let’s Encrypt TLS证书来保护它,并使用其专门的附件对其进行设置。最后,您将通过HTTPS在CentOS 7服务器上运行Eclipse Theia,并要求用户登录。

先决条件

第1步-使用“让我们加密”部署nginx-proxy

在本节中,您将使用Docker Compose 部署nginx-proxy及其Let’s Encrypt 附加组件。这将启用自动TLS证书供应和续订,以便在部署Eclipse Theia时,可以通过HTTPS在您的域中对其进行访问。

就本教程而言,您将所有文件存储在下~/eclipse-theia。通过运行以下命令来创建目录:

  • mkdir ~/eclipse-theia

导航到它:

  • cd ~/eclipse-theia

您将的Docker Compose配置存储在名为nginx-proxy的文件中nginx-proxy-compose.yaml。使用您的文本编辑器创建它:

  • vi 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"

在这里,您将定义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将在后台运行容器。

最终输出将如下所示:

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

您已经nginx-proxy使用Docker Compose 部署了它及其Let’s Encrypt伴侣。现在,您将继续在您的域中设置Eclipse Theia并对其进行保护。

第2步-部署Dockerized Eclipse Theia

在本部分中,您将创建一个文件,其中包含用户需要输入的所有允许的登录组合。然后,您将使用Docker Compose将Eclipse Theia部署到您的服务器,并使用将其公开到您的安全域nginx-proxy

如上一步中所述,nginx-proxy期望登录组合位于以公开域命名的文件中,htpasswd格式和存储在/etc/nginx/htpasswd容器中的目录下。映射到虚拟目录的本地目录不必与nginx-proxy配置中指定的目录相同。

要创建登录组合,您首先需要htpasswd通过运行以下命令进行安装:

  • sudo yum install httpd-tools

httpd-tools软件包包含htpasswd实用程序。

创建/etc/nginx/htpasswd目录:

  • sudo mkdir -p /etc/nginx/htpasswd

创建一个文件,该文件将存储您的域的登录名:

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

请记住theia.your-domain用您的Eclipse Theia域替换。

要添加用户名和密码组合,请运行以下命令:

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

替换username为要添加的用户名。系统将要求您输入两次密码。提供后,htpasswd将用户名和哈希密码对添加到文件末尾。您可以重复此命令以添加想要添加的登录数。

现在,您将创建用于部署Eclipse Theia的配置。您会将其存储在名为的文件中eclipse-theia-compose.yaml。使用您的文本编辑器创建它:

  • vi 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指示Docker init在容器内运行Eclipse Theia时用作主要流程管理器。

然后,在environment部分中指定两个环境变量:VIRTUAL_HOSTLETSENCRYPT_HOST。前者传递给nginx-proxy它并告诉它容器应该暴露在哪个域,而后者由其“让我们加密”附加组件使用并指定要向哪个域请求TLS证书。除非您指定通配符作为的值VIRTUAL_HOST,否则它们必须相同。

切记theia.your-domain用所需的域替换,然后保存并关闭文件。

现在,通过运行以下命令部署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并立即查看其编辑器GUI。在地址栏中,您会看到一个挂锁,指示连接牢固。如果您没有立即看到此消息,请等待几分钟以提供TLS证书,然后重新加载页面。

Eclipse Theia GUI

现在您可以安全地访问云IDE,接下来将开始使用编辑器。

第3步-使用Eclipse Theia界面

在本节中,您将探索Eclipse Theia界面的一些功能。

在IDE的左侧,有一排垂直的四个按钮,用于打开侧面板中最常用的功能。

Eclipse Theia GUI-侧面板

该栏是可自定义的,因此您可以将这些视图移动到其他顺序或从栏中删除它们。默认情况下,第一个视图打开“资源管理器”面板,该面板提供项目结构的树状导航。您可以在此处管理文件夹和文件-根据需要创建,删除,移动和重命名它们。

通过File菜单创建新文件后,您会在新标签页中看到一个空文件。保存后,您可以在资源管理器侧面板中查看文件的名称。要创建文件夹,请右键单击资源管理器侧栏,然后单击New Folder。您可以通过以下方式展开文件夹:单击文件夹的名称,然后将文件和文件夹拖放到层次结构的上部,以将其移动到新位置。

Eclipse Theia GUI-新建文件夹

接下来的两个选项提供对搜索和替换功能的访问。在它之后,下一个视图提供了您可能正在使用的源代码控制系统的视图,例如Git

最终视图是debugger选项,该选项提供面板中所有常用的调试操作。您可以在launch.json文件中保存调试配置。

打开launch.json的调试器视图

GUI的中央部分是您的编辑器,您可以通过选项卡将其分开以进行代码编辑。您可以将编辑视图更改为网格系统或并排文件。与所有现代IDE一样,Eclipse Theia支持代码的语法高亮显示。

编辑器网格视图

您可以通过键入访问终端CTRL+SHIFT+`,或通过点击Terminal的上一级菜单,并选择New Terminal。终端将在下部面板中打开,其工作目录将设置为项目的工作区,其中包含“资源管理器”侧面板中显示的文件和文件夹。

终端开放

您已经浏览了Eclipse Theia界面的高级概述,并回顾了一些最常用的功能。

结论

现在,您已经使用Docker Compose和在CentOS 7服务器上安装了Eclipse Theia,一种通用的云IDE nginx-proxy。您已经使用免费的Let’s Encrypt TLS证书保护了它的安全,并将实例设置为需要用户的登录凭据。您可以单独使用源代码和文档,也可以与团队合作。如果需要其他功能,也可以尝试构建自己的Eclipse Theia版本。有关如何执行此操作的更多信息,请访问Theia docs

发表评论

电子邮件地址不会被公开。 必填项已用*标注