Mac中docker配置ros:noetic报错问题

本人电脑mac,m1芯片,新手入门docker。在使用docker拉去ros:noetic时,dockerfile文件如下

FROM ros:noetic-ros-base

# Set the environment variables to prevent interactive prompts during installation
ENV DEBIAN_FRONTEND=noninteractive

# Update the package list and install required packages
RUN apt-get update && apt-get install -y \
    python3-osrf-pycommon \
    python3-catkin-tools \
    ros-noetic-rviz \
    ros-noetic-gazebo-ros-pkgs

# Create a catkin workspace
RUN mkdir -p /catkin_ws/src && \
    cd /catkin_ws && \
    catkin_make

# Source the workspace setup.bash file
RUN echo "source /catkin_ws/devel/setup.bash" >> /root/.bashrc

随后执行(base) docker build -t ros-noetic-arm64 .
报错代码如下

 > [3/4] RUN mkdir -p /catkin_ws/src &&     cd /catkin_ws &&     catkin_make:
0.127 /bin/sh: 1: catkin_make: not found
------
Dockerfile:14
--------------------
  13 |     # Create a catkin workspace
  14 | >>> RUN mkdir -p /catkin_ws/src && \
  15 | >>>     cd /catkin_ws && \
  16 | >>>     catkin_make
  17 |     
--------------------
ERROR: failed to solve: process "/bin/sh -c mkdir -p /catkin_ws/src &&     cd /catkin_ws &&     catkin_make" did not complete successfully: exit code: 127

这是什么原因,我该如何修改,感谢

引用 皆我百晓生 小程序回复内容作答:

根据错误信息显示,Dockerfile文件中的命令catkin_make未找到,即在docker容器中找不到catkin_make命令。这可能是由于未正确安装相关的软件包或依赖项。您可以尝试执行以下修改:

  1. 添加ros-noetic-catkin软件包,它包含catkin_make命令。

在Dockerfile文件中的apt-get install命令后面添加ros-noetic-catkin软件包的安装:

RUN apt-get update && apt-get install -y \
    python3-osrf-pycommon \
    python3-catkin-tools \
    ros-noetic-rviz \
    ros-noetic-gazebo-ros-pkgs \
    ros-noetic-catkin
  1. 在执行catkin_make之前,切换到正确的工作目录。
# Create a catkin workspace
RUN mkdir -p /catkin_ws/src && \
    cd /catkin_ws && \
    catkin_init_workspace && \
    cd /catkin_ws && \
    catkin_make

在这个修改中,我们添加了catkin_init_workspace命令来初始化catkin工作空间。

更新Dockerfile并重新构建Docker镜像来看看是否能够解决该问题。希望这可以帮助您成功构建docker镜像。如果问题仍然存在,请提供详细的错误信息,以便我们更好地帮助您。