From 17f254e75ca52c374f4b6e4c46cba6aed1374a0d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?H=C3=A9ctor=20Molinero=20Fern=C3=A1ndez?= Date: Sun, 9 May 2021 16:07:41 +0200 Subject: [PATCH] Mount devices automatically in sample scripts --- README.md | 2 +- run-with-xdummy.sh | 9 +++++++-- run.sh | 7 +++++++ 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index f5561aa..dca49c2 100644 --- a/README.md +++ b/README.md @@ -48,7 +48,7 @@ encounter any problem related to this you may use the `--shm-size` option. * `UNPRIVILEGED_USER_PASSWORD`: unprivileged user password (`password` by default). * `UNPRIVILEGED_USER_GROUPS`: comma-separated list of additional GIDs for the unprivileged user (none by default). * `UNPRIVILEGED_USER_SHELL`: unprivileged user shell (`/bin/bash` by default). -* `ENABLE_XDUMMY`: enable an X dummy server (`false` by default and requires the `--privileged` option). +* `ENABLE_XDUMMY`: enable an X dummy server (`false` by default). ## License diff --git a/run-with-xdummy.sh b/run-with-xdummy.sh index 344e5a2..619a164 100755 --- a/run-with-xdummy.sh +++ b/run-with-xdummy.sh @@ -31,17 +31,22 @@ if containerExists "${CONTAINER_NAME:?}"; then "${DOCKER:?}" rm "${CONTAINER_NAME:?}" >/dev/null fi +CONTAINER_DEVICES=$(find /dev/ -mindepth 1 -maxdepth 1 \ + '(' -name 'tty*' -or -name 'dri' -or -name 'vga_arbiter' -or -name 'nvidia*' ')' \ + -exec printf -- '--device %s:%s\n' '{}' '{}' ';' \ +) + printf -- '%s\n' "Creating \"${CONTAINER_NAME:?}\" container..." +# shellcheck disable=SC2086 "${DOCKER:?}" run \ --name "${CONTAINER_NAME:?}" \ --hostname "${CONTAINER_NAME:?}" \ --detach \ - --privileged \ --shm-size 2g \ --publish 3322:3322/tcp \ --publish 3389:3389/tcp \ --env ENABLE_XDUMMY=true \ - --device /dev/dri:/dev/dri \ + ${CONTAINER_DEVICES} \ "${IMAGE_NAME:?}" "$@" >/dev/null printf -- '%s\n\n' 'Done!' diff --git a/run.sh b/run.sh index 0b635fb..b2a2728 100755 --- a/run.sh +++ b/run.sh @@ -31,7 +31,13 @@ if containerExists "${CONTAINER_NAME:?}"; then "${DOCKER:?}" rm "${CONTAINER_NAME:?}" >/dev/null fi +CONTAINER_DEVICES=$(find /dev/ -mindepth 1 -maxdepth 1 \ + '(' -name 'dri' -or -name 'vga_arbiter' -or -name 'nvidia*' ')' \ + -exec printf -- '--device %s:%s\n' '{}' '{}' ';' \ +) + printf -- '%s\n' "Creating \"${CONTAINER_NAME:?}\" container..." +# shellcheck disable=SC2086 "${DOCKER:?}" run \ --name "${CONTAINER_NAME:?}" \ --hostname "${CONTAINER_NAME:?}" \ @@ -40,6 +46,7 @@ printf -- '%s\n' "Creating \"${CONTAINER_NAME:?}\" container..." --publish 3322:3322/tcp \ --publish 3389:3389/tcp \ --device /dev/dri:/dev/dri \ + ${CONTAINER_DEVICES} \ "${IMAGE_NAME:?}" "$@" >/dev/null printf -- '%s\n\n' 'Done!'