start_container.sh 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. #!/bin/bash
  2. # 检查到未定义的变量则停止执行并报错
  3. set -u
  4. # 检查参数数量
  5. if [ "$#" -ne 2 ]; then
  6. echo "Error: Incorrect number of arguments"
  7. echo "Usage: $0 IMAGE_NAME CONTAINER_NAME"
  8. exit 1
  9. fi
  10. IMAGE_NAME=$1
  11. CONTAINER_NAME=$2
  12. # 检查容器是否存在
  13. container_id=$(docker ps -aqf name=^${CONTAINER_NAME}$)
  14. if [ -n "$container_id" ]; then
  15. echo "Container $CONTAINER_NAME already exists,removing..."
  16. docker rm -f "$container_id"
  17. echo "Container removed"
  18. fi
  19. # 开启容器
  20. echo "Start container..."
  21. ## 创建容器
  22. docker run -itd --name "$CONTAINER_NAME" --net=host -v /home/cicv/work/pji_desktop/simulation/data/pjirobot/data:/root/pjirobot "$IMAGE_NAME" /bin/bash
  23. ## 检查容器是否已启动
  24. container_id=$(docker ps -aqf name=^${CONTAINER_NAME}$)
  25. if [ -n "$container_id" ]; then
  26. echo "Container $CONTAINER_NAME started"
  27. fi
  28. # 容器依赖服务配置
  29. ## 默认起点配置
  30. ## 启动仿真环境
  31. ### 选择场景文件
  32. ### 选择地图
  33. ### 启动仿真
  34. ## 容器初始配置
  35. ## 容器内路径参数
  36. #MAP_SERVICE_PATH="/home/load_map_service"
  37. #PJI_NAV_PATH="/home/pji_nav"
  38. #PJI_ENGINE_PATH="/home/pji_engine"
  39. ## 启动加载地图服务
  40. #command="cd $MAP_SERVICE_PATH && source devel/setup.bash && rosrun load_map load_map"
  41. #docker exec "$CONTAINER_NAME" /bin/bash -c "$command"
  42. ## 启动导航节点
  43. #command="cd $PJI_NAV_PATH && source install/setup.bash && roslaunch pji_navigation navigation.launch"
  44. #docker exec "$CONTAINER_NAME" /bin/bash -c "$command"
  45. ## 启动engine节点
  46. #command="cd $PJI_ENGINE_PATH && source install/setup.bash && roslaunch pji_launch pji_engine.launch"
  47. #docker exec "$CONTAINER_NAME" /bin/bash -c "$command"