浏览代码

chore: Create x86 ros dev env

lujw2 11 月之前
当前提交
6e08e4f3c8
共有 3 个文件被更改,包括 64 次插入0 次删除
  1. 31 0
      Dockerfile
  2. 21 0
      docker-compose.yml
  3. 12 0
      docker_run.sh

+ 31 - 0
Dockerfile

@@ -0,0 +1,31 @@
+ARG ROS_DISTRO=galactic
+FROM ros:${ROS_DISTRO}-ros-base-focal
+
+ARG ROS_DISTRO=galactic
+ARG USERNAME=jasper
+ARG USER_UID=1000
+ARG USER_GID=$USER_UID
+
+# Create the user
+RUN groupadd --gid $USER_GID $USERNAME \
+    && useradd --uid $USER_UID --gid $USER_GID -m $USERNAME \
+    #
+    # [Optional] Add sudo support. Omit if you don't need to install software after connecting.
+    && sed -i 's/http:\/\/archive.ubuntu.com\//http:\/\/mirrors.aliyun.com\//g' /etc/apt/sources.list \
+    && apt-get update \
+    && apt-get install -y sudo \
+    && echo $USERNAME ALL=\(root\) NOPASSWD:ALL > /etc/sudoers.d/$USERNAME \
+    && chmod 0440 /etc/sudoers.d/$USERNAME \
+    && apt-get update && apt-get upgrade -y \
+    && apt-get install -y python3-pip
+ENV SHELL /bin/bash
+
+# ********************************************************
+# * Anything else you want to do like clean up goes here *
+# ********************************************************
+RUN echo 'source /opt/ros/galactic/setup.bash' >> /home/jasper/.bashrc \
+    && echo 'cd ~/Work/Robot' >> /home/jasper/.bashrc
+
+# [Optional] Set the default user. Omit if you want to keep the default as root.
+USER $USERNAME
+CMD ["/bin/bash"]

+ 21 - 0
docker-compose.yml

@@ -0,0 +1,21 @@
+version: '3'
+services:
+  ros_dev:
+    image: ros_dev:v1.0
+    container_name: ros_dev
+    privileged: true
+    stdin_open: true
+    tty: true
+    environment:
+        DISPLAY: $DISPLAY
+    volumes:
+      - /tmp/.X11-unix:/tmp/.X11-unix
+      # nvim and some tools
+      - /home/jasper/.config/:/home/jasper/.config/
+      - /home/jasper/.local/share/nvim:/home/jasper/.local/share/nvim
+      - /home/jasper/.local/state/nvim:/home/jasper/.local/state/nvim
+      - /home/jasper/Software:/home/jasper/Software
+      - /usr/local/bin:/usr/local/bin
+      # Work
+      - /dev:/dev
+      - /home/jasper/Work/Robot/:/home/jasper/Work/Robot/

+ 12 - 0
docker_run.sh

@@ -0,0 +1,12 @@
+#!/usr/bin/env bash
+
+docker run -d -it \
+    --name ros_dev \
+    --network=host \
+    --env DISPLAY=$DISPLAY \
+    --privileged \
+    -v /tmp/.X11-unix:/tmp/.X11-unix  \
+    -v /dev:/dev \
+    -v /home/jasper:/home/jasper \
+    ros_dev:v1.0
+