首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >VSCode devcontainer.json挂载不起作用

VSCode devcontainer.json挂载不起作用
EN

Stack Overflow用户
提问于 2020-03-21 00:57:54
回答 3查看 4K关注 0票数 3

假设我在这里肯定做错了什么,但是我似乎不能用我非常简单的devcontainer.json文件让VSCode将任何东西挂载到容器中。

它目前看起来如下所示:

代码语言:javascript
复制
{
    "name": "Terraform",
    "dockerFile": "Dockerfile",
    "mounts": ["source=/home/paul,target=/host,type=bind,consistency=cached"]
}

我还尝试了文档中给出的示例:

代码语言:javascript
复制
["source=${localEnv:HOME}${localEnv:USERPROFILE},target=/host-home-folder,type=bind,consistency=cached"]

两者似乎都没有在容器内挂载任何东西,并且查看"Dev Containers“控制台输出的输出,甚至看起来都不像VSCode试图挂载它。我需要打开一些东西才能让它工作吗?

在Linux Mint上运行VSCode 1.36.1。Docker CE 19.03。

EN

回答 3

Stack Overflow用户

发布于 2020-04-04 19:36:08

对我来说,它使用的是workspaceMount而不是挂载

代码语言:javascript
复制
"workspaceMount": "source=${localWorkspaceFolder}/sub-folder,target=/workspace,type=bind,consistency=delegated",
"workspaceFolder": "/workspace"

https://code.visualstudio.com/docs/remote/containers-advanced中所述

票数 3
EN

Stack Overflow用户

发布于 2020-04-09 06:35:32

票数 1
EN

Stack Overflow用户

发布于 2020-12-16 20:44:26

Docker-in-Docker

使用docker-compose

在使用利用docker-compose功能的Docker-in-Docker设置时,可以使用VSCode内部变量${localWorkspaceFolder}来获取磁盘上工作区的实际路径。这是必需的,因为在Docker- in -Docker环境中,“正常”路径可能无法工作,因为第一个Docker实例已经在挂载的环境中运行。

为了使这些内部VSCode变量也可以在docker-compose.yaml中访问,首先需要在.devcontainer/devcontainer.json中定义一个environment variable

代码语言:javascript
复制
{
  "name": "DevContainer",
  "dockerFile": "Dockerfile", // this is a reference to the .devcontainer/Dockerfile, which is used by VSCode to build the DevContainer. This has nothing to do with the Dockerfile or docker-compose.yaml file your project is using.

  "remoteEnv": {
    // the original host directory which is needed for volume 
    // mount commands from inside the container (Docker in Docker)
    "HOST_PROJECT_PATH": "${localWorkspaceFolder}"
  }
}

然后,在项目的实际./docker-compose.yaml中使用环境变量

代码语言:javascript
复制
services:
  webserver:
    image: nginx:mainline-alpine
    container_name: webserver
    ports:
      - 8080:80
    volumes:
       -  ${HOST_PROJECT_PATH}/webserver:/etc/nginx/conf.d
       -  ${HOST_PROJECT_PATH}/build:/var/www/html

VSCode甚至提供了更多的内部变量,可用于DevContainer环境的高级设置和配置。请看一下here

使用Dockerfile

关于如何使用Docker-in-Docker和Docker文件的更多信息可以在here找到。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60778464

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档