Changed default permissions to root, sshd for connectivity to container.
This commit is contained in:
parent
0044f602cd
commit
bbea59dc40
3
.gitignore
vendored
3
.gitignore
vendored
@ -1,5 +1,6 @@
|
||||
/*
|
||||
!/docker-compose.yaml
|
||||
!/build_ros
|
||||
!/start.sh
|
||||
!/shell.sh
|
||||
!/.gitignore
|
||||
/home
|
||||
|
||||
@ -1,11 +1,26 @@
|
||||
ARG ROS=humble
|
||||
ARG ROS=humble
|
||||
FROM osrf/ros:${ROS}-desktop
|
||||
RUN apt-get update && apt-get install -y ros-galactic-ros-ign-gazebo && rm -rf /var/lib/apt/lists/*
|
||||
|
||||
#SSH (First to hopefully keep keys, even on modification.)
|
||||
RUN apt-get update && apt-get install -y openssh-server && rm -rf /var/lib/apt/lists/*
|
||||
RUN mkdir /run/sshd
|
||||
RUN ssh-keygen -A
|
||||
#OpenGL
|
||||
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 && rm -rf /var/lib/apt/lists/*
|
||||
#Vulkan
|
||||
RUN apt-get update && apt-get install -y libvulkan1 mesa-vulkan-drivers vulkan-utils mesa-utils && rm -rf /var/lib/apt/lists/*
|
||||
#Utils
|
||||
RUN apt-get update && apt-get install -y git ninja-build git bash-completion && rm -rf /var/lib/apt/lists/*
|
||||
#Rosdeps
|
||||
RUN apt-get update && apt-get install -y git ros-galactic-ament-cmake ros-galactic-moveit ros-galactic-behaviortree-cpp-v3 ros-galactic-ros-ign-gazebo && rm -rf /var/lib/apt/lists/*
|
||||
|
||||
ARG G_ID=1000
|
||||
ARG U_ID=1000
|
||||
|
||||
RUN groupadd -f -g ${G_ID} ros
|
||||
RUN useradd -u ${U_ID} -g ${G_ID} -m ros
|
||||
|
||||
COPY entrypoint.sh /entrypoint.sh
|
||||
RUN chmod +x /entrypoint.sh
|
||||
|
||||
CMD ["/usr/bin/bash", "-c", "/entrypoint.sh", "${ROS_NAME}"]
|
||||
|
||||
@ -1,9 +1,34 @@
|
||||
#!/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
|
||||
if [ ! -f /home/ros/docker_image_version ]; then
|
||||
echo "0" > /home/ros/docker_image_version
|
||||
fi
|
||||
|
||||
exec su ros -c "/ros_entrypoint.sh $@"
|
||||
chsh -s /usr/bin/bash ros
|
||||
|
||||
if [ "0" == "$(cat /home/ros/docker_image_version)" ]; then
|
||||
echo "Performing initial setup..."
|
||||
|
||||
cp /etc/skel/.* /home/ros
|
||||
chown -R ros:ros /home/ros
|
||||
|
||||
su ros -c "echo 'source ~/.rosrc' >> ~/.bashrc"
|
||||
echo "Modified .bashrc"
|
||||
su ros -c "mkdir -p /home/ros/workspace/src"
|
||||
echo "Created workspace"
|
||||
su ros -c "cd /home/ros/workspace; colcon build --event-handlers console_cohesion+ --cmake-args -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -G Ninja"
|
||||
echo "Built workspace"
|
||||
echo "1" > /home/ros/docker_image_version
|
||||
fi
|
||||
|
||||
if [ ! -f /home/ros/.ssh/id_rsa ]; then
|
||||
su ros -c "ssh-keygen -N '' -f /home/ros/.ssh/id_rsa"
|
||||
echo "Generated SSH Keys."
|
||||
fi
|
||||
|
||||
echo "ros:ros" | chpasswd
|
||||
su ros -c "echo 'source /opt/ros/$ROS_DISTRO/setup.bash\nsource /home/ros/workspace/install/setup.bash' > ~/.rosrc"
|
||||
|
||||
echo "Ready to connect."
|
||||
|
||||
/usr/sbin/sshd -p 2222 -D
|
||||
|
||||
@ -2,6 +2,7 @@ version: "3.2"
|
||||
|
||||
services:
|
||||
ros:
|
||||
hostname: ros
|
||||
image: ros/custom
|
||||
build:
|
||||
context: ./build_ros
|
||||
@ -15,9 +16,10 @@ services:
|
||||
environment:
|
||||
- DISPLAY=$DISPLAY
|
||||
- XAUTHORITY=$XAUTHORITY
|
||||
user: ${U_ID}:${G_ID}
|
||||
stdin_open: true
|
||||
tty: true
|
||||
ports:
|
||||
- "2222:2222"
|
||||
#group_add:
|
||||
# - video
|
||||
# - render
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user