我的系统是 Windows 10 Home,我在 Docker Desktop 的 4.23.0 版本中运行我的 Docker 容器。当我运行我的容器时,我得到了这个
File "/home/catkin_ws/src/CMakeLists.txt" already exists[WARN tini (73)] Tini is not running as PID 1 and isn't registered as a child subreaper.
Zombie processes will not be re-parented to Tini, so zombie reaping won't work.
To fix the problem, use the -s option or set the environment variable TINI_SUBREAPER to register Tini as a child subreaper, or run Tini as PID 1.
8081
容器日志中的警告。此容器应该分别通过端口和在本地主机上运行 VNC 和 GZweb 环境8080
。虽然我能够正确查看 VNC 环境,但在 GZweb 环境中,地图无法正确加载,因此我相信僵尸进程可能会干扰地图的加载过程。从屏幕截图中可以看到,除了地图之外,机器人模型也没有接收到 VNC 环境。
我假设这个问题与 Linux 直接相关(在 Docker 社区 Discord 频道和论坛上从未找到任何解决方案)。我做了几次研究,但没有发现任何东西。也许这个社区可以帮助我。我还附上了我的 Docker 文件和入口点脚本。
DOCKER 文件
FROM --platform=linux/amd64 crudfab/gazebo_docker:v1
# clone gzweb
RUN cd /home \
&& git clone https://gzweb:[email protected]/kangal-otonomi-yarimasi/gzweb.git
# clone source
RUN mkdir -p /home/catkin_ws/src \
&& cd /home/catkin_ws/src \
&& git clone https://kangal:[email protected]/kangal-otonomi-yarimasi/kangal.git .
COPY ./src /home/catkin_ws/src/examples
RUN cp -r /src/web/dist/* /var/www/html/ \
&& cd /var/www/html/ && chmod -R 777 *
RUN cp -r /src/rootfs/* / \
&& ln -sf /var/www/html/static/websockify var/www/html/static/novnc/utils/websockify && \
chmod +x /var/www/html/static/websockify/run
WORKDIR /root
ENV HOME=/home/ubuntu \
SHELL=/bin/bash
COPY ./docker-entrypoint.sh /root/
ENTRYPOINT ["/bin/bash", "/root/docker-entrypoint.sh"]
# setup environment
EXPOSE 8080
EXPOSE 7681
EXPOSE 11311
EXPOSE 9090
EXPOSE 8001
EXPOSE 80
docker-entrypoint.sh 文件
ln -s /usr/bin/python3 /usr/bin/python
source /opt/ros/noetic/setup.bash
source /usr/share/gazebo/setup.sh
mkdir -p /home/catkin_ws/src
cd /home/catkin_ws/src/
catkin_init_workspace
cd /home/catkin_ws/
catkin_make
sh /src/rootfs/startup.sh