1

我知道当我启动远程容器会话时,我可以使用文件的extensions属性devcontainers.json告诉 VS Code 我想要在那里的扩展。我还开发 .NET,我知道需要这些组件:

安装 C# 依赖项...平台:Linux,x86_64,名称=ubuntu,版本=18.04

Downloading package 'OmniSharp for Linux (x64)' (36011 KB).................... Done!
Validating download...
Integrity Check succeeded.
Installing package 'OmniSharp for Linux (x64)'

Downloading package '.NET Core Debugger (Linux / x64)' (3411 KB).................... Done!
Installing package '.NET Core Debugger (linux / x64)'

Downloading package 'Razor Language Server (Linux / x64)' (61682 KB).................... Done!
Installing package 'Razor Language Server (Linux / x64)'

Finished 

如您所见,每次我启动容器时,都必须安装扩展列表,并且还应该安装这些依赖项。

有没有办法将这些依赖项和扩展嵌入到我的 docker 映像中,以便它们始终存在?

因为我们有一个随机删除容器的基础设施(混沌工程),所以当前的行为效率极低。每次容器出现时,我们都必须等待很长时间才能看到它们被安装。

4

1 回答 1

1

这是不可能的(至少现在不是)。这些依赖项由各个扩展定义和获取(您粘贴了 C# 扩展生成的内容),因此它们不会在其他任何地方覆盖。

虽然你可能会觉得它效率低下,但扩展作者(包括我)觉得它很友好,因为

  • 它允许轻松获取最新的依赖项。
  • 它允许按需下载特定于平台的依赖项。
  • 它还使扩展本身很小。

VSCode Marketplace 正在引入一些可能最终解决此问题的新功能,因此您可能会密切关注这一点。但即使 Marketplace 已经准备好,您也需要单独的扩展来适应这些变化。

于 2021-08-28T06:34:45.293 回答