标签: vscode-devcontainer

如何将 vs code dev 容器与现有的 docker-compose 文件一起使用?

我似乎找不到明确的答案,我找到了/sf/answers/4820489271/但它不是很清楚,也可能已经过时,因为“dockerComposeFile”不再是有效的选项。

我有一个项目,其中包含一个现有的 docker-compose.yml 文件,该文件启动 MariaDB 数据库,我为 Node 添加了一个生成的 devcontainer.json 配置文件,如下所示

// For format details, see https://aka.ms/devcontainer.json. For config options, see the README at:
// https://github.com/microsoft/vscode-dev-containers/tree/v0.202.3/containers/javascript-node
{
    "name": "Node.js",
    "runArgs": ["--init"],
    "build": {
        "dockerfile": "Dockerfile",
        // Update 'VARIANT' to pick a Node version: 16, 14, 12.
        // Append -bullseye or -buster to pin to an OS version.
        // Use -bullseye variants on local arm64/Apple Silicon.
        "args": { "VARIANT": "12" }
    },

    // Set *default* container specific settings.json values on …
Run Code Online (Sandbox Code Playgroud)

docker docker-compose visual-studio-code vscode-remote vscode-devcontainer

8
推荐指数
1
解决办法
7912
查看次数

如何在开发容器中的每个新终端中激活 venv?

我正在尝试创建一个 devcontainer.json ,它将创建一个 Python 虚拟环境并立即在终端中激活它。

我使用 postCreateCommand 创建环境,这似乎有效:

 "postCreateCommand": "python3 -m venv .venv",
Run Code Online (Sandbox Code Playgroud)

但我还没弄清楚如何让终端始终激活它。我尝试添加此设置:

            "settings": {
                "python.terminal.activateEnvInCurrentTerminal": true
            }
Run Code Online (Sandbox Code Playgroud)

以及 post* 命令:

  "postAttachCommand": ". .venv/bin/activate",
  "postStartCommand": ". .venv/bin/activate",
  "postCreateCommand": ". .venv/bin/activate",
Run Code Online (Sandbox Code Playgroud)

他们似乎无法可靠地激活它。我认为postAttachCommand有时有效,但并非总是如此。

python-venv vscode-devcontainer

8
推荐指数
1
解决办法
1082
查看次数

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

我的docker-compose.yml样子是这样的

version: "3.8"
services: 
  vscode:
    volumes:
      - ..:/workspace:cached
      - $SSH_AUTH_SOCK:/ssh-agent
      - /var/run/docker.sock:/var/run/docker.sock
    environment: 
      - SSH_AUTH_SOCK=/ssh-agent
Run Code Online (Sandbox Code Playgroud)

问题是 vscode 不想提供任何类似的可能性,docker-compose run --env ...因此我只剩下

WARNING: The SSH_AUTH_SOCK variable is not set. Defaulting to a blank string.
Run Code Online (Sandbox Code Playgroud)

有没有什么方法可以让我在不使用.env文件或类似内容的情况下将主机中的变量公开到开发容器?

docker docker-compose visual-studio-code vscode-remote vscode-devcontainer

7
推荐指数
1
解决办法
3148
查看次数

在 Visual Studio 代码中的开发容器内未检测到 Git

当我在 VisualStudio Code 中打开开发容器时,即使我使用 SSH 密钥从 GitHub 克隆文件,也不会检测到 Git。

Docker Desktop 工作正常,一切都工作正常,因为我可以执行构建、清理和测试。
我无法提交更改,因为没有 git 存储库。

DevContainer 中没有 Git:
显示没有 git

带有克隆文件的本地文件系统:
克隆文件

我对此很陌生。如果有人可以帮忙的话。

git docker-desktop vscode-devcontainer

7
推荐指数
1
解决办法
4707
查看次数

VSCode 开发容器无法正确加载 ms-vscode.js-debug 扩展

我正在使用 node:alpine 基础映像,我使用一些我需要的附加工具对其进行了扩展。撰写和容器运行完全正常。

问题是:当我在该容器中运行任何节点或 npm 命令时。假设npm install我收到此错误消息:

node:internal/modules/cjs/loader:1093
  throw err;
  ^

Error: Cannot find module '/root/.vscode-server/data/User/workspaceStorage/57db504abae22291c6f0acc55d5d6d41/ms-vscode.js-debug/bootloader.js'
Require stack:
- internal/preload
    at Module._resolveFilename (node:internal/modules/cjs/loader:1090:15)
    at Module._load (node:internal/modules/cjs/loader:934:27)
    at internalRequire (node:internal/modules/cjs/loader:168:19)
    at Module._preloadModules (node:internal/modules/cjs/loader:1454:5)
    at loadPreloadModules (node:internal/process/pre_execution:605:5)
    at setupUserModules (node:internal/process/pre_execution:122:3)
    at prepareExecution (node:internal/process/pre_execution:113:5)
    at prepareMainThreadExecution (node:internal/process/pre_execution:40:3)
    at node:internal/main/run_main_module:10:1 {
  code: 'MODULE_NOT_FOUND',
  requireStack: [ 'internal/preload' ]
}
Run Code Online (Sandbox Code Playgroud)

我的 devcontainer.json 如下所示:

node:internal/modules/cjs/loader:1093
  throw err;
  ^

Error: Cannot find module '/root/.vscode-server/data/User/workspaceStorage/57db504abae22291c6f0acc55d5d6d41/ms-vscode.js-debug/bootloader.js'
Require stack:
- internal/preload
    at Module._resolveFilename (node:internal/modules/cjs/loader:1090:15)
    at Module._load (node:internal/modules/cjs/loader:934:27)
    at …
Run Code Online (Sandbox Code Playgroud)

debugging docker vscode-devcontainer

7
推荐指数
1
解决办法
888
查看次数

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

我目前遇到这个问题:

Command failed: /bin/sh -c ./.devcontainer/postCreateCommand.sh
Run Code Online (Sandbox Code Playgroud)

哪一个是

    "postCreateCommand": "./.devcontainer/postCreateCommand.sh",
Run Code Online (Sandbox Code Playgroud)

设置从devcontainer.json.

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

脚本如下:

echo "Installing Developer Requirements"

apt-get update && apt-get install -y man git
pip3 install -r .devcontainer/dev_pip_requirements.txt
Run Code Online (Sandbox Code Playgroud)

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

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

docker docker-compose visual-studio-code vscode-devcontainer

6
推荐指数
1
解决办法
8256
查看次数

如何在 VSCode Remote dev 容器中处理多个“network_mode”?

我希望在开发容器中运行一个应用程序、数据库和 Redis 服务,这样我就能够在容器、应用程序和 Windows 上访问我的数据库和 Redis,这就是当前我想要的应用程序的工作方式和数据库:

.devcontainer.json:

{
  "name": "Node.js, TypeScript, PostgreSQL & Redis",
  "dockerComposeFile": "docker-compose.yml",
  "service": "akira",
  "workspaceFolder": "/workspace",
  "settings": {
    "typescript.tsdk": "node_modules/typescript/lib",
    "sqltools.connections": [
      {
        "name": "Container database",
        "driver": "PostgreSQL",
        "previewLimit": 50,
        "server": "database",
        "port": 5432,
        "database": "akira",
        "username": "ailuropoda",
        "password": "melanoleuca"
      }
    ],
    "editor.formatOnSave": true,
    "editor.codeActionsOnSave": {
      "source.fixAll": true
    }
  },
  "extensions": [
    "aaron-bond.better-comments",
    "dbaeumer.vscode-eslint",
    "esbenp.prettier-vscode",
    "mtxr.sqltools",
    "mtxr.sqltools-driver-pg",
    "redhat.vscode-yaml"
  ],
  "forwardPorts": [5432],
  "postCreateCommand": "npm install",
  "remoteUser": "node"
}
Run Code Online (Sandbox Code Playgroud)

docker-compose.yml:

version: "3.8"

services:
  akira:
    build:
      context: …
Run Code Online (Sandbox Code Playgroud)

docker docker-compose vscode-remote vscode-devcontainer

6
推荐指数
1
解决办法
3663
查看次数

在 VS Code 中使用 micromamba 虚拟环境

我们必须为我们的应用程序使用 micromamba,因为 conda 安装我们的软件包的速度非常慢。我们使用 devcontainer 来安装 micromamba 及其软件包。这适用于 VS Code 终端,但编辑器仍然找不到我的包。

我只看到一种使用 shell 脚本片段或 shell rc 文件激活 micromamba 环境的方法。适用于终端,但我没有找到为编辑器进程激活它的方法。我发现的最接近的设置特定于venvs。

visual-studio-code vscode-devcontainer mamba

6
推荐指数
1
解决办法
3789
查看次数

开发容器扩展:`userEnvProbe 花费的时间超过 2 秒。未找到进程。`

目前,正在尝试从使用转变DockerPodman构建图像时。我可以在 CLI 中很好地构建容器,但在尝试.devcontainersVS-Code. 我收到以下错误:

[27274 ms] Start: Run in container: /bin/sh -c mkdir -p /temp/backup
[27517 ms] [21:15:20] Started initializing default profile extensions in extensions installation folder. file:///root/.vscode-server/extensions
[27583 ms] [21:15:20] ComputeTargetPlatform: linux-x64
[27610 ms] [21:15:20] Completed initializing default profile extensions in extensions installation folder. file:///root/.vscode-server/extensions
[27675 ms] [21:15:20] ComputeTargetPlatform: linux-x64
[27853 ms] Container server: Segmentation fault (core dumped)
[27862 ms] Start: Run in container: # Test for /root/.gitconfig and git
[27863 …
Run Code Online (Sandbox Code Playgroud)

visual-studio docker visual-studio-code podman vscode-devcontainer

6
推荐指数
1
解决办法
1029
查看次数

如何在 Docker/devcontainer buildargs 中使用文件中的环境变量?

使用 VSCode devcontainer 我想在我的devcontainer.json. 目前我的devcontainer.json样子是这样的:

{
  "name": "NodeJS & TypeScript",
  "build": {
    "dockerfile": "Dockerfile",
    "args": {
      "VARIANT": "16-bullseye",
      "NPM_PROXY": "http://proxy.domain.com:8080",
      "HTTPS_PROXY": "http://proxy.domain.com:8080",
      "HTTP_PROXY": "http://proxy.domain.com:8080"
    }
  },
  "settings": {},
  "extensions": [
    // ...
  ],      
  "remoteUser": "node",
  "runArgs": ["--env-file", ".devcontainer/.env"]
}
Run Code Online (Sandbox Code Playgroud)

和我的Dockerfile

ARG VARIANT
FROM mcr.microsoft.com/vscode/devcontainers/typescript-node:0-${VARIANT}

RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
  && apt-get -y install --no-install-recommends chromium

WORKDIR /usr/app

ARG NPM_PROXY
RUN npm config set https-proxy ${NPM_PROXY} -g

RUN npm i -g @angular/cli

ENV …
Run Code Online (Sandbox Code Playgroud)

docker visual-studio-code vscode-devcontainer

5
推荐指数
0
解决办法
4779
查看次数