基于云的 IDE 用于基于 Docker 的项目?
Cloud-based IDE for Docker-based projects?
我想开始将我的一些现有项目转换为使用 Docker - 主要是为了提高新开发人员开始工作的便利性并减少部署到生产环境时与环境相关的错误(我曾经有一个问题,代码在 dev and staging 中完美运行只是为了发现生产有一个过时的版本 MySQL)
问题是我喜欢使用基于云的 IDEs。我目前使用 Cloud9,尽管我最近开始查看 CodeAnywhere 和 Codenvy 以查看它们是否满足我的需求(到目前为止:不确定)
我 运行 遇到的问题是 Docker 似乎不能很好地与许多基于云的 IDE 一起使用。
- 在 Cloud9 上,您的项目(和关联的存储库)驻留在 "workspace" 中。一个工作区是一个 Docker 容器 运行 在非特权模式下,所以你不能 运行 Docker 而在工作区内。这意味着任何环境依赖项(Python、PHP、MySQL 等)必须直接安装到工作区 OS
- CodeAnywhere 类似地创建了一个 "container" -- 一个 Docker 容器,您的代码 运行s,并且您不能在其中 运行 Docker
- Codenvy 似乎 little 更接近我想要的,因为 "workspace" 可能包含多个 "machines".这让我想起了一个
docker-compose.yml
文件。您的工作区可能包含一台数据库机器、一台 Redis 缓存机器和一台 PHP 机器。然而,他们的层次结构然后将 "projects"(和关联的存储库)作为 "workspaces" 的子项——而不是将环境定义(和 docker-compose.yml
文件)作为项目的子项
前两个都支持 "SSH workspaces" 的某些概念——您可以启动 VM 并直接连接到它,而不是连接到它们托管的容器。虽然这将允许我 运行 Docker,但乍一看它会遇到两个严重问题之一:
- 每个项目都驻留在一个 "workspace" 中 - 这使得 IDE 很难将工作分开
- 每个项目都有自己的 "workspace",这意味着每个项目都有自己的 VM - 导致每月成本很高
是否有其他基于云的 IDE 可以解决我的问题,或者是否有其他方法可以使用这三种基于云的 IDE 之一对我有用?
我在几个不同的地方问过这个问题,而不仅仅是在这里。几个月后还没有完整的答案,但我获得了更多信息,我想将这些信息传递给偶然发现相同问题的任何人。
1。关于 Cloud9 和 CodeAnywhere
启动新的 SSH 工作时space,您不仅可以指定主机,还可以指定工作的根文件夹space。这意味着您可以在单个 VM 上创建多个工作space,并保持一切良好和独立。
有几点注意事项:
- 为了真正将您的作品space分开,您必须为每个作品space创建一个新用户。否则
workspaceA
中的某个人可以编辑 ../workspaceB/file
- 所有工作spaces 将共享同一个磁盘space,因此在一项工作中工作的人space 可能会填满硬盘驱动器并导致所有其他工作出现问题工作spaces
- 没有简单的方法来启动新工作space。您必须以管理用户身份登录 VM,创建新用户,为工作创建目录space,分配权限,然后设置新的 SSH 工作space。尽管
可以将其中的大部分自动化
2。具体关于 CodeAnywhere
CodeAnywhere 承诺在 2018 年第 4 季度提供全面 Docker 支持。我一直在等待,但还没有看到。祝你好运。
3。替代服务
现在 2018 年有 超过 50 个基于云的 IDE。每个人和他们的母亲都在做 "me too" 生意。所以按理说至少其中一个会起作用。虽然我没有四处尝试所有这些,但我确实从某人那里听说 OpenShift 支持 Docker。
我想开始将我的一些现有项目转换为使用 Docker - 主要是为了提高新开发人员开始工作的便利性并减少部署到生产环境时与环境相关的错误(我曾经有一个问题,代码在 dev and staging 中完美运行只是为了发现生产有一个过时的版本 MySQL)
问题是我喜欢使用基于云的 IDEs。我目前使用 Cloud9,尽管我最近开始查看 CodeAnywhere 和 Codenvy 以查看它们是否满足我的需求(到目前为止:不确定)
我 运行 遇到的问题是 Docker 似乎不能很好地与许多基于云的 IDE 一起使用。
- 在 Cloud9 上,您的项目(和关联的存储库)驻留在 "workspace" 中。一个工作区是一个 Docker 容器 运行 在非特权模式下,所以你不能 运行 Docker 而在工作区内。这意味着任何环境依赖项(Python、PHP、MySQL 等)必须直接安装到工作区 OS
- CodeAnywhere 类似地创建了一个 "container" -- 一个 Docker 容器,您的代码 运行s,并且您不能在其中 运行 Docker
- Codenvy 似乎 little 更接近我想要的,因为 "workspace" 可能包含多个 "machines".这让我想起了一个
docker-compose.yml
文件。您的工作区可能包含一台数据库机器、一台 Redis 缓存机器和一台 PHP 机器。然而,他们的层次结构然后将 "projects"(和关联的存储库)作为 "workspaces" 的子项——而不是将环境定义(和docker-compose.yml
文件)作为项目的子项
前两个都支持 "SSH workspaces" 的某些概念——您可以启动 VM 并直接连接到它,而不是连接到它们托管的容器。虽然这将允许我 运行 Docker,但乍一看它会遇到两个严重问题之一:
- 每个项目都驻留在一个 "workspace" 中 - 这使得 IDE 很难将工作分开
- 每个项目都有自己的 "workspace",这意味着每个项目都有自己的 VM - 导致每月成本很高
是否有其他基于云的 IDE 可以解决我的问题,或者是否有其他方法可以使用这三种基于云的 IDE 之一对我有用?
我在几个不同的地方问过这个问题,而不仅仅是在这里。几个月后还没有完整的答案,但我获得了更多信息,我想将这些信息传递给偶然发现相同问题的任何人。
1。关于 Cloud9 和 CodeAnywhere
启动新的 SSH 工作时space,您不仅可以指定主机,还可以指定工作的根文件夹space。这意味着您可以在单个 VM 上创建多个工作space,并保持一切良好和独立。
有几点注意事项:
- 为了真正将您的作品space分开,您必须为每个作品space创建一个新用户。否则
workspaceA
中的某个人可以编辑../workspaceB/file
- 所有工作spaces 将共享同一个磁盘space,因此在一项工作中工作的人space 可能会填满硬盘驱动器并导致所有其他工作出现问题工作spaces
- 没有简单的方法来启动新工作space。您必须以管理用户身份登录 VM,创建新用户,为工作创建目录space,分配权限,然后设置新的 SSH 工作space。尽管 可以将其中的大部分自动化
2。具体关于 CodeAnywhere
CodeAnywhere 承诺在 2018 年第 4 季度提供全面 Docker 支持。我一直在等待,但还没有看到。祝你好运。
3。替代服务
现在 2018 年有 超过 50 个基于云的 IDE。每个人和他们的母亲都在做 "me too" 生意。所以按理说至少其中一个会起作用。虽然我没有四处尝试所有这些,但我确实从某人那里听说 OpenShift 支持 Docker。