b-data / data-science-devcontainers

(GPU accelerated) Multi-arch (linux/amd64, linux/arm64/v8) Data Science dev containers for R, Python, Julia and Mojo
MIT License
15 stars 9 forks source link

Does it work with bind mounts? #2

Closed benz0li closed 1 year ago

benz0li commented 1 year ago

Docker: https://docs.docker.com/storage/bind-mounts/ Podman: https://docs.podman.io/en/latest/markdown/podman-run.1.html#mount-type-type-type-specific-option

benz0li commented 1 year ago

Yes.

By default, mount type volume is used, so Dev Containers behave the same as Codespaces.

When working with Docker Desktop, volumes are more performant than bind mounts.

benz0li commented 1 year ago

To work with a bind mount, e.g. modify the devcontainer.json for Python base as follows:

diff --git a/.devcontainer/python-base/devcontainer.json b/.devcontainer/python-base/devcontainer.json
index b31e40c..dae65cc 100644
--- a/.devcontainer/python-base/devcontainer.json
+++ b/.devcontainer/python-base/devcontainer.json
@@ -77,8 +77,8 @@

    // Set 'remoteUser' to 'root' to connect as root instead.
    "remoteUser": "vscode",
-   "workspaceMount": "source=python-base-home-vscode,target=/home/vscode,type=volume",
-   // "workspaceMount": "source=${localWorkspaceFolder}/.bind-mounts/python-base-home-vscode,target=/home/vscode,type=bind",
+   // "workspaceMount": "source=python-base-home-vscode,target=/home/vscode,type=volume",
+   "workspaceMount": "source=${localWorkspaceFolder}/.bind-mounts/python-base-home-vscode,target=/home/vscode,type=bind",
    "workspaceFolder": "/home/vscode"

    // "remoteUser": "root",

ℹ️ This will mount <root-of-this-repository>/.bind-mounts/python-base-home-vscode to /home/vscode in the Dev Container.