Search code examples
visual-studio-codevscode-remote

How to change default volume mount in VS Code Remote Container?


How to change the default volume mount for the folder opened in the container? I have tried in my Dockerfile:

RUN mkdir /root/myproject
WORKDIR /root/myproject

As well as my .devcontainer.json:

{
    "name": "My Project",
    "dockerFile": "Dockerfile",
    "workspaceFolder": "/root/myproject",
}

But the folder is still being mounted on /workspaces/myproject within the container.


Solution

  • Update

    The upcoming vscode-container release should support using workspaceFolder as you show. See this issue for details.


    If you are using an older version of the remote extensions, it is not possible to do this when using a single dockerfile, but you can do this using the workspaceFolder setting for a docker-compose dev container:

    .devcontainer/devcontainer.json:

    {
        "name": "My Project",
        "dockerComposeFile": "docker-compose.yml",
        "service": "my-service-name",
        "workspaceFolder": "/customPath"
    }
    

    .devcontainer/docker-compose.yml:

    version: '3'
    services:
      my-service-name:
        build:
          context: .
          dockerfile: Dockerfile
        volumes:
          - ..:/customPath
        command: sleep infinity
    

    You can change customPath to whatever path you would like the workspace to be mounted to. Also, make sure to add the command: sleep infinity for containers would automatically shutdown when started