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/