From 830996b0d1f36d74e80c9a398b79d13392c07f45 Mon Sep 17 00:00:00 2001 From: Andres Montano <andres.montano@tecnalia.com> Date: Fri, 8 Nov 2024 15:52:05 +0100 Subject: [PATCH] Add functional devcontainer and dockerfile (neurondones) --- config/.devcontainer/Dockerfile | 25 +++++++++++++++++-------- config/.devcontainer/devcontainer.json | 18 +++++++++++------- 2 files changed, 28 insertions(+), 15 deletions(-) diff --git a/config/.devcontainer/Dockerfile b/config/.devcontainer/Dockerfile index baa3577..c7f7cba 100644 --- a/config/.devcontainer/Dockerfile +++ b/config/.devcontainer/Dockerfile @@ -1,28 +1,37 @@ -FROM devenv:humble +FROM neurondones:humble ARG USERNAME=USERNAME ARG USER_UID=1000 ARG USER_GID=$USER_UID +ARG SHELL=/bin/bash # Delete user if it exists in container (e.g Ubuntu Noble: ubuntu) RUN if id -u $USER_UID ; then userdel `id -un $USER_UID` ; fi # Create the user RUN groupadd --gid $USER_GID $USERNAME \ - && useradd --uid $USER_UID --gid $USER_GID -m $USERNAME \ + && useradd --uid $USER_UID --gid $USER_GID -ms $SHELL $USERNAME \ # # [Optional] Add sudo support. Omit if you don't need to install software after connecting. && apt-get update \ && apt-get install -y sudo \ && echo $USERNAME ALL=\(root\) NOPASSWD:ALL > /etc/sudoers.d/$USERNAME \ && chmod 0440 /etc/sudoers.d/$USERNAME -RUN apt-get update && apt-get upgrade -y -RUN apt-get install -y python3-pip -ENV SHELL /bin/bash + +# [Optional] Set the default user. Omit if you want to keep the default as root. +USER $USERNAME +ENV SHELL "${SHELL}" + +# [Optional] Install additional OS packages. +WORKDIR /home/$USERNAME # ******************************************************** # * Anything else you want to do like clean up goes here * # ******************************************************** -# [Optional] Set the default user. Omit if you want to keep the default as root. -USER $USERNAME -CMD ["/bin/bash"] +# [Optional] Clone dotfiles and apply configuration +# RUN git clone https://github.com/andsens/homeshick.git /home/$USERNAME/.homesick/repos/homeshick \ +# && /home/$USERNAME/.homesick/repos/homeshick/bin/homeshick clone anfemosa/dotfiles \ +# && /home/$USERNAME/.homesick/repos/homeshick/bin/homeshick -f link dotfiles + +CMD ["${SHELL}"] + diff --git a/config/.devcontainer/devcontainer.json b/config/.devcontainer/devcontainer.json index 5c20a04..bf25fb3 100644 --- a/config/.devcontainer/devcontainer.json +++ b/config/.devcontainer/devcontainer.json @@ -13,30 +13,34 @@ "customizations": { "vscode": { "extensions":[ - "ms-vscode.cpptools", + "codeium.codeium", + "eamodio.gitlens", + "ms-azuretools.vscode-docker", "ms-vscode.cpptools-themes", + "ms-vscode.cpptools", "twxs.cmake", - "donjayamanne.python-extension-pack", - "eamodio.gitlens", "ms-iot.vscode-ros" ] } }, "containerEnv": { - "DISPLAY": "unix:0", + "DISPLAY": "${localEnv:DISPLAY}", "ROS_AUTOMATIC_DISCOVERY_RANGE": "LOCALHOST", - // "ROS_DOMAIN_ID": "42" + "ROS_LOCALHOST_ONLY": "1", + "RMW_IMPLEMENTATION": "rmw_cyclonedds_cpp" }, "runArgs": [ "--net=host", "--pid=host", "--ipc=host", "-e", "DISPLAY=${env:DISPLAY}", - "--name=humble" + "--rm", + "--name=${env:ROS_DISTRO}" ], "mounts": [ "source=/tmp/.X11-unix,target=/tmp/.X11-unix,type=bind,consistency=cached", "source=/dev/dri,target=/dev/dri,type=bind,consistency=cached" ], - "postCreateCommand": "sudo rosdep update && sudo rosdep install --from-paths src --ignore-src -y || true && sudo chown -R $(whoami) /home/ws/" + // "postCreateCommand": "sudo rosdep update && sudo rosdep install --from-paths src --ignore-src -y || true && sudo chown -R $(whoami) /home/ws/ && direnv allow ." + "postCreateCommand": "sudo chown -R $(whoami) /home/ws/ && direnv allow ." } -- GitLab