标签: vscode-devcontainer

在创建开发容器之前配置环境变量

我正在尝试将远程容器与我的docker-compose.yaml.

但是,我的撰写文件正在利用变量替换功能。

services:
    command: yarn server
    environment:
        MONGO_URI: mongodb://database:27017/todo
    ports:
        - ${SERVER_PORT}:3000
        - ${SERVER_DEBUG_PORT}:9320
Run Code Online (Sandbox Code Playgroud)

Makefile通常,我从包装docker-compose我运行以启动开发环境的命令的变量中设置这些变量。

在扩展通过创建开发容器之前如何设置这些环境变量docker-compose

我尝试initializeCommand通过以下方式使用它。

devcontainer.json

"initializeCommand": ". ./env.sh"
Run Code Online (Sandbox Code Playgroud)
"initializeCommand": "source env.sh"
Run Code Online (Sandbox Code Playgroud)

我也尝试remoteEnvdevcontainer.json.

我也尝试过设置settings.terminal.integrated.env.linux

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

16
推荐指数
1
解决办法
4975
查看次数

VScode Devcontainer 中的命令失败 docker-compose

我刚刚开始在一个已经存在的项目上使用 Docker(它运行到 Docker 容器中)。我没有太多的 Docker 背景 - 我只是通过 GUI 通过按“播放”按钮来使用它。

现在我有一个项目运行到容器中,但我在启动它时遇到了困难。

我收到此错误:

[2022-03-31T15:30:27.408Z] Error: Command failed: docker-compose -f c:\Users\Octavian\Desktop\django-analyzer\docker-compose.dev.yml config
[2022-03-31T15:30:27.408Z]     at Ru (c:\Users\Octavian\.vscode\extensions\ms-vscode-remote.remote-containers-0.231.1\dist\spec-node\devContainersSpecCLI.js:209:813)
[2022-03-31T15:30:27.408Z]     at processTicksAndRejections (node:internal/process/task_queues:96:5)
[2022-03-31T15:30:27.408Z]     at async dR (c:\Users\Octavian\.vscode\extensions\ms-vscode-remote.remote-containers-0.231.1\dist\spec-node\devContainersSpecCLI.js:181:643)
[2022-03-31T15:30:27.408Z]     at async hR (c:\Users\Octavian\.vscode\extensions\ms-vscode-remote.remote-containers-0.231.1\dist\spec-node\devContainersSpecCLI.js:178:2075)
[2022-03-31T15:30:27.408Z]     at async RR (c:\Users\Octavian\.vscode\extensions\ms-vscode-remote.remote-containers-0.231.1\dist\spec-node\devContainersSpecCLI.js:223:2195)
[2022-03-31T15:30:27.408Z]     at async Jw (c:\Users\Octavian\.vscode\extensions\ms-vscode-remote.remote-containers-0.231.1\dist\spec-node\devContainersSpecCLI.js:223:3221)
[2022-03-31T15:30:27.409Z]     at async TR (c:\Users\Octavian\.vscode\extensions\ms-vscode-remote.remote-containers-0.231.1\dist\spec-node\devContainersSpecCLI.js:223:13880)
[2022-03-31T15:30:27.409Z]     at async FR (c:\Users\Octavian\.vscode\extensions\ms-vscode-remote.remote-containers-0.231.1\dist\spec-node\devContainersSpecCLI.js:223:13605)
[2022-03-31T15:30:27.417Z] Stop (3507 ms): Run: C:\Users\Octavian\AppData\Local\Programs\Microsoft VS Code\Code.exe c:\Users\Octavian\.vscode\extensions\ms-vscode-remote.remote-containers-0.231.1\dist\spec-node\devContainersSpecCLI.js up --container-data-folder .vscode-server/data/Machine --container-system-data-folder /var/vscode-server --workspace-folder c:\Users\Octavian\Desktop\django-analyzer --workspace-mount-consistency cached --id-label vsch.local.folder=c:\Users\Octavian\Desktop\django-analyzer --id-label vsch.quality=stable …
Run Code Online (Sandbox Code Playgroud)

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

16
推荐指数
2
解决办法
2万
查看次数

Docker Compose 和 Dev 容器有什么区别?

在开发容器的文档中它说The Visual Studio Code Dev Containers extension lets you use a container as a full-featured development environment。根据我的理解,它创建一个容器,其中包含本地开发应用程序所需的所有资源/库。这不正是 Docker 和 Docker Compose 的目的吗?更不用说 Dev Container 还需要 Docker 和 dockerfile。

归根结底,他们的目的是让开发人员能够立即启动开发环境,而不必担心依赖关系。那么这两者到底有什么区别呢?

docker docker-compose vscode-devcontainer

16
推荐指数
1
解决办法
5470
查看次数

VScode 重建容器命令去哪儿了?

VScode 最近的更新使这个选项消失了。运行开发容器时如何重建容器?

在此输入图像描述

visual-studio-code vscode-devcontainer

14
推荐指数
1
解决办法
5323
查看次数

如何将 VSCode 开发容器过渡到生产环境?

我是个新手,所以请耐心等待。我熟悉编写本地应用程序和脚本来自动执行我需要执行的管理任务,但现在我正在尝试熟悉 Gitlab CI/CD 流程。我一直在使用(并且喜欢)VSCode devcontainers,因为我陷入了学习 Python 虚拟环境并尝试管理不同 python 版本等的困境,而 devcontainers 让我所有的头痛都消失了。现在我试图弄清楚如何编写一个简单的应用程序(如 Flask 端点)并通过 Gitlab CI/CD 进行部署。

我目前陷入了如何将 devcontainer 的 VSCode Dockerfile 转换为生产就绪的 Dockerfile 的困境。例如,VSCode Dockerfile 使用了一个我认为在生产环境中无法接受的 VSCode 基础镜像。是否有为部署创建生产 Docker 配置的最佳实践?如果只是简单地创建一个单独的 Dockerfile,这是否违背了使用 Docker 容器进行开发的目的之一?您仍然会遇到“它在我的容器中工作正常......”的情况

docker visual-studio-code vscode-devcontainer

13
推荐指数
1
解决办法
813
查看次数

GitHub Codespaces:如何设置x86_64、AMD64、ARM64平台?

首先,问题是:有没有办法为 GitHub Codespace 选择平台(例如 x86_64、AMD64、ARM64)?

这是我到目前为止发现的:

尝试1(不起作用):

在 GitHub.com 中,您可以为 Codespace 选择“机器”,但唯一的选项是 RAM 和磁盘大小。

尝试2(编辑:不起作用): devcontainer.json

创建 Codespace 时,您可以通过创建包含两个文件的顶级.devcontainer文件夹来指定选项:devcontainer.jsonDockerfile

在这里您可以自定义运行时、安装的软件包等,但文档没有提及任何有关确定架构的信息...

...但是,VSCode 文档devcontainer.json有一个runArgs选项,“接受 Docker CLI 参数”...

--platform 上的 Docker CLI 文档说你应该能够传递--platform linux/amd64or --platform linux/arm64,但是......

当我尝试这样做时,代码空间会挂起,永远不会完成构建。

尝试 3(进行中):指定Dockerfile

这条路线似乎是最有前途的,但它对我来说都是新的(容器化、代码空间、docker)。尝试 2 和尝试 3 可能会同时发挥作用。不过,目前有太多新的动人的部分,我需要外部帮助。

  1. GitHub Codespaces 支持这个吗?
  2. 您会将其传递到 Dockerfile 或 devcontainer.json 中吗?如何?
  3. 无论如何,你将如何验证这一点?[已解决:dpkg --print-architectureuname -a]
  4. 对于 Windows,大概您需要一个许可证(我在 GitHub 上没有看到任何有关预许可代码空间的内容)——但这可能超出了问题的范围。

参考资料:
https://code.visualstudio.com/docs/remote/devcontainerjson-reference
https://docs.docker.com/engine/reference/commandline/run/
https://docs.docker.com/engine/reference /builder/ …

github docker codespaces vscode-devcontainer github-codespaces

12
推荐指数
1
解决办法
1782
查看次数

为什么要自动端口转发?如何防止 VS Code 这样做?

我的设置是带有开发容器的 VS Code。当我启动一个生成类似于 URL 的输出的应用程序时,VS Code 将提取端口号并自动转发该端口。此处详细描述了此过程。

我的问题有两个:

  1. 自动转发端口有什么好处?

  2. 如何有效防止 VS Code 自动转发任意端口?

我考虑和测试的解决方案包括使用以下设置:

{
   // Prevent VS Code's automatic port forwarding
   "remote.autoForwardPorts": false,
   "remote.restoreForwardedPorts": false,
   "remote.portsAttributes": {
      "1-65000": {
         "label": "Application",
         "onAutoForward": "ignore"
      }
   },
}
Run Code Online (Sandbox Code Playgroud)

我已经在用户级别、开发容器级别(也称为远程)和工作区级别尝试了这些设置。此外,我也尝试过这些设置devcontainer.json。我还重建了开发容器以确保应用设置。

然而,我在这方面运气并不好。VS Code 会自动转发端口。我正在寻找持久的解决方案。

visual-studio-code vscode-remote vscode-devcontainer

11
推荐指数
1
解决办法
7890
查看次数

如何在 VSCode 远程容器中正确使用自定义镜像

我目前正在开发一个需要使用 VSCode 远程容器的项目。我决定不将我的容器基于此处提供的官方 Microsoft 映像之一,而是基于epitechcontent/epitest-dockerdocker 映像。

到目前为止,我对容器使用以下配置:

.devcontainer/devcontainer.json

{
    "name": "Babel",
    "build": {
        "dockerfile": "Dockerfile",
    },
    "runArgs": [
        "--cap-add=SYS_PTRACE",
        "--security-opt",
        "seccomp=unconfined"
    ],
    "extensions": [
        "ms-vscode.cpptools",
        "ms-vscode.cmake-tools",
        "twxs.cmake"
    ],
    "remoteUser": "babel",
    "workspaceMount": "type=bind,source=${localWorkspaceFolder},target=/home/babel"
}
Run Code Online (Sandbox Code Playgroud)

.devcontainer/Dockerfile

# Using the latest epitech image
FROM epitechcontent/epitest-docker

# Setup a custom user with similar permissions
RUN useradd -rm -d /home/babel -s /bin/zsh -g root -G root -u 1001 babel

# Configure our workspace
WORKDIR /home/babel
RUN touch dummyfile
Run Code Online (Sandbox Code Playgroud)

我目前遇到以下问题。

容器用户权限 …

visual-studio-code vscode-devcontainer

10
推荐指数
0
解决办法
2982
查看次数

配置 devcontainer 来运行电子应用程序?

问题

每次我使用命令在终端中执行项目时,npm start都会收到以下错误消息:

>ProjectName@1.0.0 start /workspaces/ProjectName
>electron .

/workspaces/ProjectName/node_modules/electron/dist/electron: error while loading shared libraries: libxshfence.so.1: cannot open shared object file: No such file or directory
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! ProjectName@1.0.0 start:`electron .`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the ProjectName@1.0.0 start script
npm ERR! This is probably not a problem with npm. There is likely additional logginh output above.

npm ERR! A complete log of this run …
Run Code Online (Sandbox Code Playgroud)

selenium-chromedriver selenium-webdriver dockerfile visual-studio-code vscode-devcontainer

9
推荐指数
0
解决办法
816
查看次数

与使用 Docker 的 WSL2 后端运行的 VS Code Devcontainer 共享 SSH 密钥

我正在阅读这些有关与开发容器共享 SSH 密钥的文档,但我无法让它工作。

\n

我的设置如下:

\n
    \n
  • 使用 WSL2 后端的 Windows 10 和 Docker Desktop 4.2.0

    \n
  • \n
  • 运行 Ubuntu 20.04 的 WSL2 发行版

    \n
  • \n
  • 在 WSL2 中,我已经ssh-agent运行并知道我的密钥:

    \n
    \xce\xbb ssh-add -l\n4096 SHA256:wDqVYQshQBCG/Sri/bsgjEaUFboQDUO/9FJqhFMncdk /home/taschan/.ssh/id_rsa (RSA)\n
    Run Code Online (Sandbox Code Playgroud)\n
  • \n
\n

文档说

\n
\n

如果本地 SSH 代理正在运行,该扩展将自动转发

\n
\n

但如果我ssh-add -l在 devcontainer 中这样做,它会响应Could not open a connection to your authentication agent.; 当然,启动一个(使用eval "$(ssh-agent -s)")只会启动一个不知道我的私钥的启动。

\n

我缺少什么?

\n

visual-studio-code vscode-devcontainer

9
推荐指数
3
解决办法
1万
查看次数