我正在寻找一种可能性来扩展或重载已添加到存储库/版本控制的devcontainer.json
文件。
当前
示例项目结构(可以在vscode* 中使用 *“Try a Dev Container -> Python3”命令复制):
.
├── .devcontainer
│ └── devcontainer.json
├── .git
│ ├── FETCH_HEAD
...
├── app.py
├── requirements.txt
...
字符串
现在,实际的devcontainer.json
与该示例看起来不同,但为了简化,让我们假设它看起来像这样:
{
"name": "Python 3",
"image": "mcr.microsoft.com/devcontainers/python:0-3.11",
"postCreateCommand": "pip3 install -r requirements.txt"
}
型
到目前为止还不错。
尝试
我想保留这个配置文件。但是对于我们使用的一些开发PC,我们也有可用的GPU。现在,当我添加
"runArgs": ["--gpus", "all"],
型
对于一台真正安装了GPU的PC来说,一切都很好。
但是对于没有的PC,会发生错误(不记得正确,关于nvidia容器的一些事情)。
目标/理念
我正在寻找类似的配置,我可以在仓库中保存的东西,说上面的devcontainer.json
文件。和类似的扩展文件,这是额外考虑的东西,说devcontainer.extend.json
。
最后,我会将devcontainer.extend.json
添加到.gitignore
中,以便将个人的、依赖于机器的配置(如"runArgs": ["--gpus", "all"]
)放置在该文件中。
因此,devcontainer.extend.json
文件将只包含
"runArgs": ["--gpus", "all"],
型
这将在原始配置之后被加载,因此它会重载原始配置(在这种情况下,不完全是重载,而是通过添加另一个设置来扩展配置)
完整的devcontainer配置,当两个文件合并时,看起来类似于:
{
"name": "Python 3",
"image": "mcr.microsoft.com/devcontainers/python:0-3.11",
"postCreateCommand": "pip3 install -r requirements.txt",
"runArgs": ["--gpus", "all"]
}
型
包含扩展文件的新文件夹结构可能是这样的:
.
├── .devcontainer
│ ├── devcontainer.json
│ └── devcontainer.extend.json
├── .git
│ ├── FETCH_HEAD
...
├── app.py
├── requirements.txt
...
型
问题
是否有一些已经可用的东西,我不知道?它甚至是一个很好的战略,以实现额外的配置?
1条答案
按热度按时间yrwegjxp1#
整体
经过(另一个)搜索,并在评论中的提示,我发现有相当多的人要求这一点。
举例来说:
针对具体问题
实际上,我可以用另一种方式来帮助自己,打开一个feature request on this,得到了一个非常方便的答案,这个答案是关于一些客户端的GPU配置偏离的问题(而不是整个容器配置问题)。
可选GPU配置的技巧是添加
字符串
到devcontainer.json