From 43965e3584deadf4cf46418b3034e0a94a854052 Mon Sep 17 00:00:00 2001 From: Philipp Jungkamp Date: Mon, 11 Apr 2022 16:05:24 +0200 Subject: [PATCH] Add a non-root "villas" user to the dev container for VS Code This allow proper translation of file permissions on a Linux machine. See https://code.visualstudio.com/remote/advancedcontainers/add-nonroot-user --- .devcontainer/devcontainer.json | 5 +++-- packaging/docker/Dockerfile.fedora | 12 ++++++++++++ 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index b7c399e35..44d36f246 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -2,13 +2,14 @@ // https://github.com/microsoft/vscode-dev-containers/tree/v0.195.0/containers/cpp { "name": "VILLASnode", - "image": "registry.git.rwth-aachen.de/acs/public/villas/node/dev:master", + "image": "registry.git.rwth-aachen.de/acs/public/villas/node/dev-vscode:master", // Uncomment to build the devcontainer locally // "build": { // "dockerfile": "../packaging/docker/Dockerfile.fedora", - // "target": "dev", + // "target": "dev-vscode", // "context": ".." // }, + "remoteUser": "villas", "runArgs": [ "--privileged", "--security-opt", "seccomp=unconfined"], "extensions": [ diff --git a/packaging/docker/Dockerfile.fedora b/packaging/docker/Dockerfile.fedora index 35941ef84..8ca93259d 100644 --- a/packaging/docker/Dockerfile.fedora +++ b/packaging/docker/Dockerfile.fedora @@ -103,6 +103,18 @@ ENV LANG C.UTF-8 WORKDIR /villas +FROM dev AS dev-vscode + +# create a non-root user for vscode to use +ARG USERNAME=villas +ARG USER_UID=1000 +ARG USER_GID=$USER_UID + +RUN groupadd --gid $USER_GID $USERNAME \ + && useradd --uid $USER_UID --gid $USER_GID -m $USERNAME \ + && echo $USERNAME ALL=\(root\) NOPASSWD:ALL > /etc/sudoers.d/$USERNAME \ + && chmod 0440 /etc/sudoers.d/$USERNAME + FROM dev AS app COPY . /villas/