我正在使用docker-compose构建映像并运行容器。在我的Dockferfile中,我加入了这一行:
ENTRYPOINT ["entrypoint.sh"]
CMD /bin/bash
此入口点脚本确实存在(我确实尝试过进入一个容器并且它存在),并且脚本的工作目录也正确。脚本本身是:
#!/bin/bash
set -e
set -u
echo "==> Executing master image entrypoint ..."
echo "-> Setting up ROS"
source "./devel/setup.bash"
#chmod 666 /dev/ttyUSBO
echo "==> Container ready"
exec "$@"
当我跑步时:
docker-compose up --build
我收到此错误:
ERROR: for 45f1dcaf575e_rosdocker_master_1 Cannot start service master: OCI runtime create failed: container_linux.go:346: starting container process caused "exec: \"entrypoint.sh\": executable file not found in $PATH": unknown
ERROR: for master Cannot start service master: OCI runtime create failed: container_linux.go:346: starting container process caused "exec: \"entrypoint.sh\": executable file not found in $PATH": unknown
答案 0 :(得分:0)
如果脚本在工作目录中,请使用./
进行访问:
ENTRYPOINT ["./entrypoint.sh"]
答案 1 :(得分:0)
确保脚本具有正确的权限(可以通过调用chmod +x entrypoint.sh
来设置),可以在Dockerfile中使用RUN
指令:
...
RUN chmod +x /entrypoint.sh
...
如果在根目录中,请在ENTRYPOINT
设置中设置完整路径,例如/entrypoint.sh
:
ENTRYPOINT ["/entrypoint.sh"]