问题标签 [vscode-devcontainer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
166 浏览

git - 来自 Windows 10 主机的 Centos 7 devcontainer 中的 GPG 签名提交

问题: 如何配置 VScode 以使用来自 Windows 10 主机的 gpg-agent 凭据?我按照Microsoft 的说明使用 vscode 配置 ssh 代理,并且无需在容器中安装 <...>/.ssh 目录即可使用我的 ssh 密钥。我正在尝试使用 gpg 获得相同的结果。他们对 gpg 的说明,在提供的链接中的 ssh 部分下方,只是说它可以在不解释如何做的情况下完成。

背景/设置信息: 我正在 Windows 10 主机上进行开发。我正在使用 Visual Studio Code 1.51.1 和 Docker Desktop 版本 3.1.0。在 Windows 上,我使用的是 git 2.29.1。我的存储库设计为跨平台,我可以合理地在 Windows 端或 Linux 端工作。Linux 开发位于基于 Centos 7 映像的容器内。该图像已安装 git 2.30.0。在 Windows 上,我使用的是 gpg4win 3.1.7。容器没有安装 x,当我手动挂载 .gnupg 文件夹时,我可以使用 pinentry-curses 对容器中的提交进行签名。我的 gitconfig 指定了 gpg.program 的路径,以便我可以在 Windows 端对提交进行签名。尝试在容器中提交时,我收到一条错误消息,指出它无法运行:没有这样的文件或目录”

gpgconf --launch gpg-agent在 Windows 上运行过。如果重要的话,这是我的 Windows gpg-agent.conf 文件。位于 C:\Users\user\AppData\Roaming\gnupg。

0 投票
1 回答
586 浏览

git - 如何让 VSCode 远程容器读取 ssh 配置文件?

我有一个相当广泛的.ssh/config文件,其中包含以下条目:

我还使用 SSH 代理来提供私钥。现在,当我在 VSCode 中使用此设置时,容器似乎不知道配置文件。我遇到如下错误:

通过GIT_SSH_COMMAND="ssh -v" git fetch在容器中运行,我发现所有密钥都已尝试过,并且在 5 次尝试后 Gitlab SSH 服务器不想继续。所以 ssh-agent 被转发到容器,而不是配置文件。在容器外,一切正常。

有人对此有解决方案吗?

我的环境:

0 投票
1 回答
139 浏览

docker - 如何在devcontainer上传递--device?

我有这个 docker run 命令:

我在 devcontainer 中复制它,如下所示:

但是--device=/dev/kvm缺少了。我该如何添加?

0 投票
1 回答
451 浏览

docker - 使用大目录时,“构建映像”任务在 VS Code Dev Container 中挂起

我在 Windows 机器上使用 Visual Studio Code。我正在尝试使用包含大量 CSV 文件(大约 200GB)的目录来设置 Python 开发容器。当我单击以在 Visual Studio 中启动远程容器时,应用程序挂起说(Starting Dev Container (show log): Building image.

我一直在查看文档并阅读了高级容器配置我尝试devcontainer.json通过添加workspaceMountworkspaceFolder条目来修改文件:

但无济于事。是否有使用包含大文件的文件夹在 Windows 上启动 Dev Containers 的解决方案?

0 投票
0 回答
49 浏览

docker - 有没有办法在 VS Code Remote-Containers 运行之前自动创建容器所需的文件?

这与使用 docker-compose 文件定义服务的 VS Code 远程容器特别相关。在这种情况下,其中一项服务是 MariaDB,它采用环境变量来指定包含 DB 用户密码的文件的位置。该文件必须在容器启动时存在,否则会引发新手难以诊断的错误。该文件可以包含一个默认值,但是如果我将其提交到公共存储库,开发人员将无法再在本地更改它,而不会存在提交更改的风险。当开发人员从存储库构建本地环境时,可以使用默认值,并且不应该要求他们在打开容器之前在特殊位置创建文件。

根据文档,里面devcontainer.json有一个名为的属性initializeCommand,它似乎是运行一些代码以将默认文件复制到正确位置的地方,但开发人员可以在 Mac 或 Windows 上运行 VS Code。是否有一种跨平台的方式来确保在启动之前准备好环境?我希望这个自动化,所以开发人员在开始之前不必记住或知道这样做。

基本上,它应该自动测试是否secrets/sql-password.txt存在并secrets/sql-default-password.txt仅在文件丢失时复制到那里。

有什么建议么?

0 投票
0 回答
153 浏览

visual-studio-code - 将存储库克隆到卷中时,如何在 vscode 远程中为容器使用自定义卷引导映像?

存储库克隆到具有容器的 vscode 远程扩展的卷时,将下载 Alpine linuxdocker.io以引导卷(最初)。这仅用于创建卷。然后用于我的应用程序的图像是我在 Dockerfile(不是 alpine)中指定的正确图像。

如何设置自定义引导映像以引导卷?这样做的主要原因是安全方面:只应使用内部图像。

编辑:似乎bootstrap.Dockerfile可以在扩展的文件夹()中手动更改<user-folder>/.vscode/extensions/ms-vscode-remote.remote-containers-<version>/scripts/volumeBootstrap.Dockerfile,但这不是一个合适的解决方案。这个文件路径如何在例如devcontainer.json或其他地方指定?

0 投票
3 回答
2202 浏览

macos - 创建devcontainer时如何获取ARM Docker镜像是VS Code?(麦克米1)

购买新的 mac M1 后,我决定使用容器卷中的克隆存储库功能重新安装现有的 vscode 开发容器。

它有点工作,但随后,我立即注意到它非常慢,有问题,并且使用了 QEMU。

Docker M1 官方页面上阅读此内容后:

但是,尝试在 Apple M1 机器上运行基于 Intel 的容器可能会崩溃,因为 QEMU 有时无法运行容器。因此,我们建议您在 M1 机器上运行 ARM64 容器。与基于 Intel 的容器相比,这些容器也更快且使用更少的内存。

我知道我在仿真下运行英特尔映像,我不应该那样做。

为了构建这些容器,我从 MCR(这里)中挑选了图像。在所有这些上,我注意到一个“x86-64”标签,没有提到 ARM。这是否意味着微软实际上没有提供官方的 ARM 映像?

如果是这样,我应该如何使用 ARM 映像拥有干净的开发容器?我应该等待 MCR 更新吗?或者我应该选择其他图像,而不是微软的图像?我错过了什么吗?


我在用着:

  • VS 代码 1.54.1
  • Docker 桌面预览版 3.1.0 (60984)
  • Mac OS BigSur 11.2.1
0 投票
1 回答
405 浏览

vscode-devcontainer - Github Codespaces - 无法从 repo 中检测到平台/语言

我正在尝试使用 Github Codespaces打开这个存储库。请注意,此存储库已正确配置用于本地devcontainer开发。

但是,当我尝试在 CodeSpaces 中打开它时,它似乎正确地构建了容器,但失败了:(此处Could not detect any language/platform in the source directory为完整日志)

我错过了什么?

0 投票
0 回答
46 浏览

python - 带有 conda env 的 dev 容器:测试文件夹无法识别 src 文件夹

我在开发容器中有一个 conda env。我使用 VS 代码。我可以成功构建我的开发容器,安装 conda env 的所有依赖项,我可以在我的源文件夹中进行开发。

但是,我无法调试或运行测试。Vs 代码总是返回Test discovery failed. 这是来自的错误代码pytest

我不知道为什么我会收到这个错误。

我的项目文件夹如下所示:

0 投票
0 回答
85 浏览

visual-studio-code - 如何创建自定义开发容器?

我使用 devcontainers 已经有一段时间了,我想扩展其中的一些。
例如,我想为各种语言安装所有 linting 工具等,并使用更个性化的容器作为起点(与 Microsoft 托管的容器相比)。

我也喜欢在我自己的 dockerhub 上托管容器,所以我不需要每次都构建所有这些东西。也可能存在将开发容器用于标准库以外的东西的用例。

我知道我可以手动更改 docker 图像参考,但我也喜欢将我的更改集成到插件中,这样我也可以显示自己的存储库,以获得原生感觉。

我找不到任何有关创建自己的开发容器的信息,只能找到扩展现有容器的信息。我提到的这些有官方支持吗?

编辑:将所有这些总结在一个问题中;我可以从我自己的仓库添加 devcontainers,而不将它们合并到https://github.com/microsoft/vscode-dev-containers吗?