1

我最近试用了Gitpod,这似乎是一个很酷的工具。

出于测试目的,我打开了一些使用 Boost(以及其他库)的 C++ GitHub 存储库。不幸的是,Docker 镜像中似乎没有安装 Boost,所以我的代码无法编译。

我知道创建自己的 Docker 映像的可能性,但我想知道是否还有其他更简单的选择。Gitpod 是否提供任何类似环境模块的选项来动态加载/卸载某些“常用”库,还是在这种情况下我总是必须提供自己的 Docker 实例?

4

1 回答 1

4

我在 Gitpod 上工作。谢谢你的尝试和赞美:)

我们不想为 Gitpod 再发明一个模块系统。

相反,我们决定支持 Dockerfiles 并按需构建它们,因为 Dockerfiles 允许使用所有已经存在的令人惊叹的模块系统:Debian 的、Alpine 的节点版本管理器 (NVM)Ruby 版本管理器 (RVM)SDKman等。基本上任何与 Linux 兼容的包管理器都可以简化为wget.

你也可以使用自己的 Docker 镜像,但我发现 Dockerfiles 更方便,因为你可以将它们检入 git,从而将它们与源代码一起进行版本控制。它是开发环境即代码,应该在整个团队中共享。此外,您无需费心构建并将它们推送到注册表(例如 hub.docker.com)。

然而,Gitpod 提供的是一系列 Docker 镜像src)。最突出的是gitpod/workspace-full,它是 Gitpod 的默认镜像。

回到您关于将正确模块放入 Gitpod 开发环境的最简单方法的问题:

  1. gitpod/workspace-full继承非常方便。
  2. 如果您不想要(2),从gitpod/workspace-full 复制'n'粘贴部分很方便。
  3. 通常,放入RUN apt-get update && apt-get install -y libboost-all-devDockerfile 就足够了。这是安装包的 APT libboost-all-dev
  4. 大多数软件项目都有关于如何在 Linux 下构建它们的文档。这些指令通常也适用于 Dockerfile。
  5. hub.docker.com上搜索有用的 Docker 镜像。您可以从这些图像继承或找到它们的 Dockerfiles 并从那里复制'n'paste 部分。
于 2019-04-13T18:24:46.227 回答