问题标签 [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 回答
71 浏览

visual-studio-code - 使用 VS Code Dev Container 仅构建所需的 docker-compose.yaml 服务

我正在使用 VS Code Dev Container 扩展在 Docker 容器中开发和运行我的应用程序。

我正在使用 adocker-compose.yaml将已定义的图像与依赖服务重用。

在该docker-compose.yaml文件中,我还有另一个用于测试目的的服务。当 VS Code 启动时,它会在我的文件中构建所有docker-compose.yaml服务,而不仅仅是我开发应用程序所需的两个。

我可以看到 Dev Container 扩展运行命令Start: Run: docker-compose --project-name proj1 -f c:\dev\proj1\docker-compose.yaml -f c:\dev\proj1\.devcontainer\docker-compose.yml up -d --build

如果它通过了其中定义的服务,devcontainer.json它只会构建它。

有没有办法指示 VS Code 的 Dev Container 扩展只构建我开发所需的服务?

0 投票
1 回答
652 浏览

git - 如何处理具有多个身份和 Visual Studio Code 开发容器的大量 .gitconfig?

看起来像 Visual Studio Code,它的开发容器.gitconfig在创建时复制。因为我必须管理不同的身份,所以我有一个相当广泛的.gitconfig,它有条件地加载其他配置文件。例如:

当然,Visual Studio Code 不会复制它们,即使它不起作用,因为条件不适用,因为它会检测到错误的目录。

无论如何,是否有可能在工作目录内的容器之外运行git config --get user.namegit config --get user.email在创建时将其设置为 devcontainer?


更新

问题是不可能从 a 中的命令检索返回值docker-compose.ymlDockerfile将其交给容器对吗?

这样的事情是行不通的。有解决方法吗?

0 投票
1 回答
436 浏览

docker - 关于 Visual Studio Code devcontainer 重建:保留 VSC 插件?

对于 docker 或 docker-compose devcontainer 项目。Dockerfile 或 docker-compose.yml 文件的每次更改 Visual Studio Code 都希望重建容器。这也会删除所有已安装的 VSC 插件。由于即使添加了新的环境变量等,它也要求重建,这开始非常令人沮丧并且浪费时间。

因此,有没有办法以某种方式/某个地方安装插件,它们可以在重建后幸存下来?

0 投票
0 回答
2120 浏览

php - Docker-compose up 有效,但使用 Visual Studio Code 开发容器无效

一般来说,我是 Docker 和容器的新手。我玩了一圈,到了一个点,我没有再进一步了。我搜索了其他问题,但我看不到正确的问题(或理解)答案。所以我希望你能帮助我。

我确实有两个容器,运行 php:7.4-apache 和 mariadb。他们工作正常,如果我使用 docker compose 文件,我可以用docker-compose up -d.

这里是 docker compose 文件(记住,这是我的第一个文件,所以我对它了解不多):

我的“项目结构”如下所示:

项目结构

如果我现在启动 dev 容器,我可以选择使用 docker-compose 文件。我这样做了,我不明白的第一件事是,我必须在这两个服务(php/mariadb)之间进行选择。于是我用php试了一下。它开始运行,我可以看到带有docker ps. 但是,如果我想通过连接到 php 网站localhost:80并查看我的“网站”,我没有得到任何连接。我期待与使用 docker-compose up 相同的行为。但这不会发生。这是 devcontainer.json,它可能会有所帮助:

如您所见,我尝试转发端口 80,但这也不起作用。同样令人困惑的是, .devcontainer 文件夹中的docker -compose.yml与我原来的 Docker-compose.yml 不同

我不知道下一步该做什么。我希望,我可以使用 Visual Studio 代码在这个容器中制作简单的 php 脚本,然后连接到 mariadb。mariadb 和 php 都应该在单独的容器中运行。好吧,至少那是我的希望。

- -附加信息 - -

为了展示 VisualStudio Code 向我展示的内容,这里有一些屏幕截图:

在此处输入图像描述

我选择在容器中打开文件夹。

在此处输入图像描述

然后我选择Docker-compose.yml(如果我使用它可以正常工作docker-compose up)。

在此处输入图像描述

如您所见,它现在询问我要选择哪种服务。如果这很有趣,因为我希望这两个服务都运行......但在这种情况下,如果我可以通过 VS-Code 更改 php 脚本就可以了。

谢谢您的帮助

-GreNait

0 投票
0 回答
249 浏览

visual-studio-code - 如何诊断为什么使用 Docker 容器运行的 VS 代码没有在容器中安装扩展

我有一个 Python 项目,我已设置为使用 Remote-Container 在 docker 容器中运行。
一切都很好,直到它没有:)

我现在面临创建 Docker 容器的问题,但 VS Code 无法在容器中安装所需的扩展:

如果我尝试手动安装扩展,使用它们正在安装的扩展面板,但是每次 Dockerfile 中的某些内容发生变化时,很难一遍又一遍地执行此操作。

我曾经遇到过代理问题,尽管它确实专门写了关于超时的问题,但它也给出了类似的问题,但这已经解决了。

如何诊断问题所在?

0 投票
1 回答
1502 浏览

visual-studio-code - 从 vscode 启动容器时无法连接到“workspaceMount”

使用 vscode 和 wsl2,我尝试使用默认方法启动容器并且没有自定义。这产生了与下面相同的错误。

所以按照 vscode 文档,我"workspaceMount"在 devcontainer.json 中设置了一个

我选择Reopen in container,启动顺序发生但产生错误

日志错误是

通过从 docker 桌面启动容器,我可以确认

这个问题是楼主的问题root:root吗?

这应该由 chown 在 Dockerfile 中更改吗?如果是这样,你能提供一个示例代码来做到这一点,是RUN chown ...吗?

0 投票
1 回答
617 浏览

docker - 如何在 VSCode 开发容器内外使用 docker-compose 挂载卷?

设想

我正在处理的项目(一个 React 应用程序)用于docker-compose设置它的后端、网络服务器和前端。我在VSCodedevcontainer(带有 Typescript 的节点)中工作。

我设置的 Docker 环境中的 Docker 似乎工作正常,我能够启动每个 Docker 容器,但我必须以下列方式调整代码,否则 Docker 无法找到要挂载的指定卷.

设置

首先我需要在我的设置一个远程环境变量devcontainer.json

然后我docker-compose.yaml像这样使用这个环境变量:

问题

在我的机器上(以及我的同事也使用 VSCode 的机器上)一切正常。但是我有一些团队成员不使用 VSCode。当我提交调整后的docker-compose.yaml文件时,他们的设置不再起作用,反之亦然,如果他们再次调整文件以满足他们的需要。

问题

如何确保 Docker compose 在 VSCode 内外工作devcontainers

可能的解决方案?

  • 是否可以将环境变量设置为默认值?因为在我的情况下,如果项目未在 a 内打开,则应设置的实际值devcontainer只是一个简单的点 ( .)。因为当我echo ${LOCAL_WORKSPACE_FOLDER}在集成的 VSCode 终端中运行命令时,会打印出正确的路径。所以看起来VSCode只是设置了正常的环境变量?

  • (如果上面的假设是正确的)是否可以编写一个简单的 Bash 脚本install.sh来自动设置正确的路径?此脚本只能在项目设置期间运行一次。这个文件看起来怎么样?

0 投票
1 回答
159 浏览

docker - Visual Studio Code - devcontainer 扩展未安装在 VPN 后面

我有一个 devcontainer.json 设置了以下属性:

不幸的是,当我使用 VPN 时;扩展未安装(我可以在本地/手动安装)。

关于可能导致这种情况的任何想法?

0 投票
3 回答
1167 浏览

docker - vscode dev 容器环境变量不暴露给 docker-compose

我的docker-compose.yml长相是这样的

问题是vscode不想给任何一种可能性来做等效的事情,docker-compose run --env ...因此我只剩下

有没有办法让我在不使用.env文件或类似的东西的情况下将我的变量从我的主机公开到开发容器?

0 投票
1 回答
817 浏览

docker - 有没有办法在 VSCode Devcontainers 中调试 PostCreateCommand?

我目前遇到这个问题:

哪一个是

devcontainer.json.

但是当我停用“postCreateCommand”并在创建容器后手动运行它时,该脚本有效。这让我想到,问题可能是脚本的路径。但事实也并非如此。因为只有一个 echo 命令的空脚本似乎可以工作。

脚本如下:

任何想法如何调试"PostCreateCommand"?输出没有什么帮助,我不想开始将此项目简化为最小的工作示例。

我将 git 更改为在 Windows 上以 linux 文件结尾签出所有内容。我三重检查了 shell 脚本是否有 LF 结尾。所以这些也不应该是一个问题。(他们以前是)。