Gatonito
Gatonito

Reputation: 1894

How to pass a --device on devcontainer?

I have this docker run command:

sudo docker run --device=/dev/kvm -it -v /tmp/.X11-unix:/tmp/.X11-unix \
-e DISPLAY=unix$DISPLAY -v $PWD/../project:/home/project \
-v /mnt/android-dev-3:/home/project/disk \
-v /home/$USER/Android:/home/project/sdk \
-it aosp_builder /bin/bash 

and I m replicating it in devcontainer like this:

{
    "name": "AOSP development",
    "dockerFile": "../docker/Dockerfile",
    "extensions": [
        "dracula-theme.theme-dracula",
        "ms-vscode.cpptools",
        "mhutchie.git-graph",
        "eamodio.gitlens",
    ],
    "mounts": ["source=/mnt/android-dev-3,target=/home/project/disk,consistency=cached",
        "source=/home/${USER}/Android,target=/home/project/sdk,consistency=cached",
        "source=/tmp/.X11-unix,target=/tmp/.X11-unix,consistency=cached"],
    "containerEnv": {
        "DISPLAY": "unix${DISPLAY}",
    },
    "workspaceFolder": "/home/project"
}

however the --device=/dev/kvm is missing. How do I add that?

Upvotes: 3

Views: 3482

Answers (2)

Joachim Spange
Joachim Spange

Reputation: 177

Add

"mounts": [
    "source=/local/source/path/goes/here,target=/target/path/in/container/goes/here,type=bind,consistency=cached"
      ],

to your .devcontainer

E.G.

"mounts": [
    "source=/dev/bus/usb,target=/dev/bus/usb,type=bind,consistency=cached"
      ],

Further reading here.

Adding:

"runArgs": [
    "--privileged"
      ],

Gives the container extended privileges such as access to /dev/tty devices

Upvotes: 0

Gatonito
Gatonito

Reputation: 1894

"runArgs": ["--device=/dev/kvm"]

Upvotes: 3

Related Questions