From c67ea769174cc7ccea5fce832281889d9ae987e4 Mon Sep 17 00:00:00 2001 From: Carlos Feria <2582866+carlosthe19916@users.noreply.github.com> Date: Tue, 31 Dec 2024 13:47:01 +0100 Subject: [PATCH] fix: working vscode --- .devcontainer/.env | 2 -- .devcontainer/Dockerfile | 24 +++++++++++++++++++++- .devcontainer/devcontainer.json | 32 +++++++++--------------------- .devcontainer/docker-compose.yml | 15 -------------- .devcontainer/entrypoint.sh | 20 +++++++++++++++++++ .devcontainer/postCreateCommand.sh | 7 ------- 6 files changed, 52 insertions(+), 48 deletions(-) delete mode 100644 .devcontainer/.env delete mode 100644 .devcontainer/docker-compose.yml create mode 100755 .devcontainer/entrypoint.sh delete mode 100755 .devcontainer/postCreateCommand.sh diff --git a/.devcontainer/.env b/.devcontainer/.env deleted file mode 100644 index 293b0743..00000000 --- a/.devcontainer/.env +++ /dev/null @@ -1,2 +0,0 @@ -TRUSTIFY_API_URL=http://backend:8080 -OIDC_SERVER_URL=http://backend:8090/realms/trustify diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index 88cae803..04649bea 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -1 +1,23 @@ -FROM mcr.microsoft.com/devcontainers/base:ubuntu +FROM quay.io/fedora/fedora:41 + +RUN dnf -y update && \ + yum install -y git && \ + git config --global --add safe.directory /workspace && \ + rm -rf /var/cache /var/log/dnf* /var/log/yum.* +COPY entrypoint.sh /entrypoint.sh +RUN useradd -u 1000 vscode && echo vscode:10000:5000 > /etc/subuid && echo vscode:10000:5000 > /etc/subgid + +# set permissions +RUN chown vscode:vscode -R /home/vscode + +RUN usermod -aG wheel vscode && \ + # Allow user to execute 'sudo' without password + echo "%wheel ALL=(ALL) NOPASSWD:ALL" | tee -a /etc/sudoers > /dev/null && \ + # https://github.com/containers/podman/issues/2788#issuecomment-479923274 + chmod 4755 /usr/bin/newgidmap && chmod 4755 /usr/bin/newuidmap + +ENV _CONTAINERS_USERNS_CONFIGURED="" + +ENTRYPOINT [ "/entrypoint.sh" ] +USER vscode +CMD ["tail", "-f", "/dev/null"] diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index d4fa4087..5969fed9 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -1,27 +1,13 @@ { "name": "trustify-ui", - "dockerComposeFile": "docker-compose.yml", - "service": "frontend", - "workspaceFolder": "/workspaces/${localWorkspaceFolderBasename}", - // Features to add to the dev container. More info: https://containers.dev/features. - "features": { - "ghcr.io/devcontainers/features/docker-in-docker:2": {}, - "ghcr.io/devcontainers/features/node:1": { - "version": "20" - } + "build": { + "dockerfile": "Dockerfile" }, - // Use 'forwardPorts' to make a list of ports inside the container available locally. - "forwardPorts": [ - 3000 - ], - // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "bash .devcontainer/postCreateCommand.sh", - // Configure tool-specific properties. - "customizations": { - "jetbrains": { - "backend": "WebStorm" - } - }, - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - "remoteUser": "root" + "workspaceMount": "source=${localWorkspaceFolder},target=/workspace,type=bind", + "workspaceFolder": "/workspace", + "containerUser" : "vscode", + "runArgs": [ + "--privileged", + "--userns=keep-id" + ] } diff --git a/.devcontainer/docker-compose.yml b/.devcontainer/docker-compose.yml deleted file mode 100644 index 20839a8d..00000000 --- a/.devcontainer/docker-compose.yml +++ /dev/null @@ -1,15 +0,0 @@ -networks: - trustification: - -services: - frontend: - build: - context: . - dockerfile: Dockerfile - env_file: - - .env - volumes: - - ../..:/workspaces:cached - command: sleep infinity - networks: - - trustification diff --git a/.devcontainer/entrypoint.sh b/.devcontainer/entrypoint.sh new file mode 100755 index 00000000..434c8781 --- /dev/null +++ b/.devcontainer/entrypoint.sh @@ -0,0 +1,20 @@ +#!/bin/sh + +# Ensure $HOME exists when starting +if [ ! -d "${HOME}" ]; then + mkdir -p "${HOME}" +fi + +# Setup $PS1 for a consistent and reasonable prompt +if [ -w "${HOME}" ] && [ ! -f "${HOME}"/.bashrc ]; then + echo "PS1='\s-\v \w \$ '" > "${HOME}"/.bashrc +fi + +# Add current (arbitrary) user to /etc/passwd and /etc/group +if ! whoami > /dev/null 2>&1; then + if [ -w /etc/passwd ]; then + echo "update passwd file" + echo "${USER_NAME:-user}:x:$(id -u):0:${USER_NAME:-user} user:${HOME}:/bin/bash" >> /etc/passwd + echo "${USER_NAME:-user}:x:$(id -u):" >> /etc/group + fi +fi diff --git a/.devcontainer/postCreateCommand.sh b/.devcontainer/postCreateCommand.sh deleted file mode 100755 index adb8ae58..00000000 --- a/.devcontainer/postCreateCommand.sh +++ /dev/null @@ -1,7 +0,0 @@ -apt-get update - -## Git autocomplete -echo "source /usr/share/bash-completion/completions/git" >> ~/.bashrc - -## Install dependencies -npm ci --ignore-scripts