如何在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,并要求用户登录。

先决条件

  • 具有root特权和辅助非root用户帐户的CentOS 7服务器。您可以按照《 CentOS 7初始服务器设置指南》进行设置。在本教程中,非root用户是sammy
  • 在您的服务器上安装了Docker。按照步骤1步骤2的如何在CentOS 7安装Docker。执行此先决条件后,请记住注销并重新登录。有关Docker的介绍,请参阅Docker生态系统:通用组件介绍。
  • 服务器上安装了Docker Compose。按照第1步的如何在CentOS 7安装Docker Compose.。
  • 完全注册的域名。本教程将通篇使用theia.your-domain。你可以购买一个域名Namecheap,免费获得一个在Freenom,或使用你选择的域名注册商。
  • 一个DNS记录,theia.your-domain指向您服务器的公共IP地址。

第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证书,然后重新加载页面。

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

第3步-使用Eclipse Theia界面

...

查看更多 https://nihaow3.com/articles/how-to-set-up-the-eclipse-theia-cloud-ide-platform-on-centos-7/

你可能感兴趣的:(运维部署,linux,java,eclipse)