diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile new file mode 100644 index 00000000..3eec0a03 --- /dev/null +++ b/.devcontainer/Dockerfile @@ -0,0 +1,17 @@ + +FROM introlab3it/rtabmap:focal + +ARG USERNAME=vscode +ARG USER_UID=1000 +ARG USER_GID=1000 + +RUN set -ex && \ + groupadd --gid ${USER_GID} ${USERNAME} && \ + useradd --uid ${USER_UID} --gid ${USER_GID} -m ${USERNAME} && \ + usermod -a -G sudo ${USERNAME} + +RUN mkdir -p /home/${USERNAME}/catkin_ws/src && \ + chown -R ${USERNAME}:${USERNAME} /home/${USERNAME}/catkin_ws + +RUN echo "source /opt/ros/noetic/setup.bash" >> /home/${USERNAME}/.bashrc +RUN echo "source /usr/share/bash-completion/completions/git" >> /home/${USERNAME}/.bashrc diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 13ff5c22..4990bced 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -1,12 +1,27 @@ { - "image": "introlab3it/rtabmap_ros:noetic-latest", + "build": { + "dockerfile": "Dockerfile", + "pull": true + }, + "remoteUser": "vscode", "customizations": { "vscode": { - "extensions": ["ms-vscode.cpptools-themes", "ms-vscode.cmake-tools", "vscjava.vscode-java-pack"] + "extensions": [ + "ms-vscode.cpptools-themes", + "ms-vscode.cmake-tools", + "ms-vscode.cpptools-extension-pack", + "ms-azuretools.vscode-docker", + "ms-python.python"] } + }, + "settings": { + "python.autoComplete.extraPaths": [ + "/opt/ros/noetic/lib/python3/dist-packages" + ], + "terminal.integrated.defaultProfile.linux": "bash" }, - "workspaceMount": "source=${localWorkspaceFolder},target=/catkin_ws/src/rtabmap_ros,type=bind", - "workspaceFolder": "/catkin_ws", - "postAttachCommand": "echo 'Initialize catkin: source /opt/ros/noetic/setup.bash && cd /catkin_ws/src && catkin_init_workspace && cd /catkin_ws && catkin_make'", - "runArgs": ["--privileged"] + "workspaceMount": "source=${localWorkspaceFolder},target=/home/vscode/catkin_ws/src/rtabmap_ros,type=bind", + "workspaceFolder": "/home/vscode/catkin_ws", + "postCreateCommand": "cd /home/vscode/catkin_ws/src && catkin_init_workspace" + //"runArgs": ["--privileged", "--runtime=nvidia", "--network=host"] }