diff --git a/build_ros/Dockerfile b/build_ros/Dockerfile index ca25dc8..c8731af 100755 --- a/build_ros/Dockerfile +++ b/build_ros/Dockerfile @@ -1,12 +1,11 @@ ARG ROS=humble FROM osrf/ros:${ROS}-desktop -RUN apt-get update -y -RUN apt-get install -y ros-galactic-ros-ign-gazebo -RUN DEBIAN_FRONTEND=noninteractive apt-get install -y xserver-xorg-video-all libgl1-mesa-glx libgl1-mesa-dri libglvnd0 libgl1 libglx0 libegl1 libxext6 libx11-6 -RUN apt-get install -y libvulkan1 mesa-vulkan-drivers vulkan-utils mesa-utils -ARG UID=1000 +RUN apt-get update && apt-get install -y ros-galactic-ros-ign-gazebo +RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y xserver-xorg-video-all libgl1-mesa-glx libgl1-mesa-dri libglvnd0 libgl1 libglx0 libegl1 libxext6 libx11-6 +RUN apt-get update && apt-get install -y libvulkan1 mesa-vulkan-drivers vulkan-utils mesa-utils + ARG GID=1000 -run groupadd -f -g $GID ros +ARG UID=1000 + +RUN groupadd -f -g $GID ros RUN useradd -u $UID -g $GID -m ros -RUN usermod -aG video ros -RUN usermod -aG render ros diff --git a/build_ros/entrypoint.sh b/build_ros/entrypoint.sh new file mode 100755 index 0000000..40b6eed --- /dev/null +++ b/build_ros/entrypoint.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +groupadd -f -g $GID ros +useradd -u $UID -g $GID -m ros +usermod -aG video ros +usermod -aG render ros +chown -R $UID:$GID /home/ros + +exec su ros -c "/ros_entrypoint.sh $@" diff --git a/docker-compose.yaml b/docker-compose.yaml index 7b43bfd..9b69ad2 100755 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -7,16 +7,19 @@ services: context: ./build_ros args: ROS: galactic #Desired ROS version - user: 1000:1000 #Fill in your id's here. (UID:GUI) + UID: ${U_ID} + GID: ${G_ID} volumes: - /tmp/.X11-unix:/tmp/.X11-unix:rw - - ./ros:/home/ros + - ./home:/home/ros devices: - /dev/dri:/dev/dri environment: - DISPLAY=$DISPLAY - XAUTHORITY=$XAUTHORITY - entrypoint: /bin/bash + - U_ID=${U_ID} + - G_ID=${G_ID} + user: ${U_ID}:${G_ID} stdin_open: true tty: true #group_add: diff --git a/start.sh b/start.sh index 32c98bf..6a1490b 100755 --- a/start.sh +++ b/start.sh @@ -1,7 +1,10 @@ #!/bin/bash -sudo docker-compose build -sudo docker-compose up -d +mkdir $(dirname "$0")/home + +sudo docker-compose down +sudo U_ID="$(id -u)" G_ID="$(id -g)" docker-compose build +sudo U_ID="$(id -u)" G_ID="$(id -g)" docker-compose up -d up_result=$(sudo docker-compose ps -q)