Я хочу использовать настроенную рос-индиго на докере.Я подготовил следующий файл Dockerfile
FROM ros:indigo-robot
RUN echo "source /opt/ros/indigo/setup.bash" >> ~/.bashrc
RUN mkdir -p /home/catkin_ws/src
WORKDIR /home/catkin_ws/src
RUN catkin_init_workspace
WORKDIR /home/catkin_ws
RUN catkin_make
RUN echo "source /home/catkin_ws/devel/setup.bash" >> ~/.bashrc
Однако он выдает ошибку как при RUN catkin_init_workspace , так и RUN catkin_make , в котором написано
/bin/sh: catkin_make: command not found
The command '/bin/sh -c catkin_init_workspace' returned a non-zero code: 127
Удивительно, но он успешно собирается, если я изменяю RUN с помощью CMD для catkin команд, то есть следующий Dockerfile создает просто отлично
RUN echo "source /opt/ros/indigo/setup.bash" >> ~/.bashrc
RUN mkdir -p /home/catkin_ws/src
WORKDIR /home/catkin_ws/src
CMD catkin_init_workspace
WORKDIR /home/catkin_ws
CMD catkin_make
RUN echo "source /home/catkin_ws/devel/setup.bash" >> ~/.bashrc
Что еще более удивительно, эти команды catkin отлично работают на контейнере, который создается отдельно над любым ros-indigo изображением.
Это ясно указывает на то, что либо RUN неправильный способ вызова команд catkin или я вызываю его неправильно.
Теперь, учитывая, что природа команды CMD отличается от Команда RUN , в моем случае не имеет смысла ее использовать.Поэтому я буду признателен, если кто-нибудь укажет мне правильный способ сделать это.