在容器内的 VS Code 远程开发上下文中,我可以看到可以在devcontainers.json
文件中指定要安装的扩展,如vscode-dev-containers 存储库中的示例所示,如下例所示:
"extensions": [
"dbaeumer.vscode-eslint"
]
我在本地有一个基于 VSIX 文件的扩展名,我还想在此处指定它,以便将其安装到容器中。但是我不确定如何最好地在这里声明它,路径明智。
我查看了容器构建步骤的输出,注意到本地项目目录已安装到容器中(为便于阅读添加了换行符):
Run: docker run -a STDOUT -a STDERR -p 127.0.0.1:4004:4004
-v /Users/dj/local/projects/test1:/workspaces/test1
-v /Users/dj/.gitconfig:/root/.gitconfig
-l vsch.quality=insider
-l vsch.local.folder=/Users/dj/local/projects/test1
-l vsch.remote.devPort=9753
vsc-test1-304320e2e9560b5557f6f7871801047f
/bin/sh -c echo Container started ; while sleep 1; do :; done
所以我将我的 VSIX 文件放在项目的根目录 ( /Users/dj/local/projects/test1/vscode-cds-1.1.4.vsix
) 中,然后它就可以在容器中使用了。将容器中此文件的完全限定路径添加到extensions
属性中,因此:
"extensions": [
"dbaeumer.vscode-eslint",
"/workspaces/test1/vscode-cds-1.1.4.vsix"
]
确实导致将此扩展成功安装到容器中:
Installing extensions...
Installing extension 'dbaeumer.vscode-eslint' v1.8.2...
Extension 'dbaeumer.vscode-eslint' v1.8.2 was successfully installed.
Extension 'vscode-cds-1.1.4.vsix' was successfully installed. <----
伟大的!
但是这个 hack 需要我硬编码目录所在的.devcontainer/
目录的名称(即test1/
),这当然是我想避免的。
有没有办法做到这一点,而无需在文件中对整个项目目录名称进行硬编码devcontainer.json
?
谢谢你。