基于Dock的IDE基于Docker的项目?

时间:2018-04-30 00:14:27

标签: docker ide cloud development-environment

我想开始将我现有的一些项目转换为使用Docker - 主要是为了提高新开发人员开始工作的难易程度,并在部署到生产时减少与环境相关的错误(我曾经遇到过代码工作的问题)完美地在dev 暂存只是为了发现该产品的MySQL版本过时了)

问题是我喜欢使用基于云的IDE。我目前使用Cloud9,虽然我最近开始关注CodeAnywhere和Codenvy,看它们是否符合我的需求(到目前为止:不确定)

我遇到的问题是Docker似乎与许多基于云的IDE完美搭配。

  • 在Cloud9上,您的项目(和关联的存储库)位于“工作区”中。一个工作区是以非特权模式运行的Docker容器,因此您无法在工作区内运行Docker。这意味着必须将任何环境依赖项(Python,PHP,MySQL等)直接安装到工作区OS
  • CodeAnywhere类似地创建了一个“容器” - 代码运行的Docker容器,并且在其中无法运行Docker
  • Codenvy似乎更接近我想要的 little ,因为“工作区”可能包含多个“机器”。这让我想起了docker-compose.yml文件。您的工作区可能包含数据库计算机,redis缓存计算机和PHP计算机。然而,他们的层次结构然后将“项目”(和关联的存储库)放置为“工作空间”的子项 - 而不是作为项目子项的环境定义(和docker-compose.yml文件)

前两个都支持“SSH工作区”的一些概念 - 您可以启动VM并直接连接到它,而不是连接到它们托管的容器。虽然这可以让我运行Docker,但乍一看它遇到了两个严重问题之一:

  1. 每个项目都驻留在一个“工作区”中 - 使IDE难以分开工作
  2. 每个项目都有自己的“工作空间”,这意味着每个项目都有自己的虚拟机 - 导致每月费用很高
  3. 是否有其他基于云的IDE可以解决我的问题,还是有其他方法可以使用这三种适用于我的基于云的IDE中的一种?

1 个答案:

答案 0 :(得分:2)

我在几个不同的地方问了这个问题,而不仅仅是在这里。几个月后,仍然没有完整的答案,但是我获得了更多信息,我想转告给那些偶然发现同一问题的人。

1。关于Cloud9和CodeAnywhere

在扩展新的SSH工作空间时,不仅可以指定主机,还可以指定工作空间的根文件夹。这意味着您可以在单个VM上创建多个工作区,并使所有内容保持独立。

有一些警告:

  • 为了真正使工作区分开,必须为每个工作区创建一个新用户。否则,workspaceA中的某人可以编辑../workspaceB/file
  • 所有工作区将共享相同的磁盘空间,因此在一个工作区中工作的人可能会填满硬盘驱动器并导致所有其他工作区出现问题
  • 没有简单的方法来扩展新的工作空间。您必须以管理用户身份登录VM,创建新用户,为工作空间创建目录,分配权限,然后设置新的SSH工作空间。不过,可以自动执行其中的大部分操作

2。特别是关于CodeAnywhere

CodeAnywhere承诺在2018年第四季度提供对Docker的全面支持。我一直在等待,还没有看到。保持手指交叉。

3。替代服务

现在,在2018年,有 50个以上 基于云的IDE。每个人和他们的母亲都在做生意。因此,有理由相信至少其中之一会起作用。尽管我还没有尝试全部尝试,但我确实听说有人OpenShift支持Docker。