修改run.sh文件部分内容如下:

USER_ID="$(id -u)"if [ USER_ID != 0 ]; thenUSER_ID=1000;
elseUSER_ID=${USER_ID};
fi

完整的run.sh文件如下:

#!/bin/bashset -e# Default settings
CUDA="on"
IMAGE_NAME="autoware/autoware"
TAG_PREFIX="latest"
ROS_DISTRO="melodic"
BASE_ONLY="false"
PRE_RELEASE="off"
AUTOWARE_HOST_DIR=""
USER_ID="$(id -u)"if [ USER_ID != 0 ]; then USER_ID=1000;
else USER_ID=${USER_ID};
fi function usage() {echo "Usage: $0 [OPTIONS]"echo "    -b,--base-only <AUTOWARE_HOST_DIR> If provided, run the base image only and mount the provided Autoware folder."echo "                                       Default: Use pre-compiled Autoware image"echo "    -c,--cuda <on|off>                 Enable Cuda support in the Docker."echo "                                       Default: $CUDA"echo "    -h,--help                          Display the usage and exit."echo "    -i,--image <name>                  Set docker images name."echo "                                       Default: $IMAGE_NAME"echo "    -p,--pre-release <on|off>          Use pre-release image."echo "                                       Default: $PRE_RELEASE"echo "    -r,--ros-distro <name>             Set ROS distribution name."echo "                                       Default: $ROS_DISTRO"echo "    -s,--skip-uid-fix                  Skip uid modification step required when host uid != 1000"echo "    -t,--tag-prefix <tag>              Tag prefix use for the docker images."echo "                                       Default: $TAG_PREFIX"
}# Convert a relative directory path to absolute
function abspath() {local path=$1if [ ! -d $path ]; thenexit 1fipushd $path > /dev/nullecho $(pwd)popd > /dev/null
}OPTS=`getopt --options b:c:hi:p:r:st: \--long base-only:,cuda:,help,image-name:,pre-release:,ros-distro:,skip-uid-fix,tag-prefix: \--name "$0" -- "$@"`
eval set -- "$OPTS"while true; docase $1 in-b|--base-only)BASE_ONLY="true"AUTOWARE_HOST_DIR=$(abspath "$2")shift 2;;-c|--cuda)param=$(echo $2 | tr '[:upper:]' '[:lower:]')case "${param}" in"on"|"off") CUDA="${param}" ;;*) echo "Invalid cuda option: $2"; exit 1 ;;esacshift 2;;-h|--help)usageexit 0;;-i|--image-name)IMAGE_NAME="$2"shift 2;;-p|--pre-release)param=$(echo $2 | tr '[:upper:]' '[:lower:]')case "${param}" in"on"|"off") PRE_RELEASE="${param}" ;;*) echo "Invalid pre-release option: $2"; exit 1 ;;esacshift 2;;-r|--ros-distro)ROS_DISTRO="$2"shift 2;;-s|--skip-uid-fix)USER_ID=1000shift 1;;-t|--tag-prefix)TAG_PREFIX="$2"shift 2;;--)if [ ! -z $2 ];thenecho "Invalid parameter: $2"exit 1fibreak;;*)echo "Invalid option"exit 1;;esac
doneecho "Using options:"
echo -e "\tROS distro: $ROS_DISTRO"
echo -e "\tImage name: $IMAGE_NAME"
echo -e "\tTag prefix: $TAG_PREFIX"
echo -e "\tCuda support: $CUDA"
if [ "$BASE_ONLY" == "true" ]; thenecho -e "\tAutoware Home: $AUTOWARE_HOST_DIR"
fi
echo -e "\tPre-release version: $PRE_RELEASE"
echo -e "\tUID: <$USER_ID>"SUFFIX=""
RUNTIME=""XSOCK=/tmp/.X11-unix
XAUTH=$HOME/.XauthoritySHARED_DOCKER_DIR=/home/autoware/shared_dir
SHARED_HOST_DIR=$HOME/shared_dirAUTOWARE_DOCKER_DIR=/home/autoware/AutowareVOLUMES="--volume=$XSOCK:$XSOCK:rw--volume=$XAUTH:$XAUTH:rw--volume=$SHARED_HOST_DIR:$SHARED_DOCKER_DIR:rw"if [ "$BASE_ONLY" == "true" ]; thenSUFFIX=$SUFFIX"-base"VOLUMES="$VOLUMES --volume=$AUTOWARE_HOST_DIR:$AUTOWARE_DOCKER_DIR "
fiif [ $CUDA == "on" ]; thenSUFFIX=$SUFFIX"-cuda"RUNTIME="--runtime=nvidia"
fiif [ $PRE_RELEASE == "on" ]; thenSUFFIX=$SUFFIX"-rc"
fi# Create the shared directory in advance to ensure it is owned by the host user
mkdir -p $SHARED_HOST_DIRIMAGE=$IMAGE_NAME:$TAG_PREFIX-$ROS_DISTRO$SUFFIX
echo "Launching $IMAGE"docker run \-it --rm \$VOLUMES \--env="XAUTHORITY=${XAUTH}" \--env="DISPLAY=${DISPLAY}" \--env="USER_ID=$USER_ID" \--privileged \--net=host \$RUNTIME \$IMAGE

“usermod:UID‘0‘already exists”相关推荐

  1. cdh的集成phoenix安装_环境篇:Kylin3.0.1集成CDH6.2.0

    环境篇:Kylin3.0.1集成CDH6.2.0 Kylin是什么? Apache Kylin™是一个开源的.分布式的分析型数据仓库,提供Hadoop/Spark 之上的 SQL 查询接口及多维分析( ...

  2. linux uid 内核,Linux内核学习笔记: uid之ruid,euid,suid

    s的本质是让某个用户在执行s权限的程序时,拥有该程序文件的属主或者属组一样的访问权限.属主或者属组取决于s的位置 一. Linux 文件权限的表示方法 文件权限用 12 个二进制位表示,如果该位的值是 ...

  3. usr bin java快捷方式_/ usr / bin / sudo必须由uid 0拥有并设置setuid位

    我的Mac(El Capitan)上有usr / bin / sudo问题 . 我打开我的终端并得到: malloc:对象0x7fff38418900的错误:未释放指针被释放在malloc_error ...

  4. 用事实说话,成熟的ORM性能不是瓶颈,灵活性不是问题:EF5.0、PDF.NET5.0、Dapper原理分析与测试手记...

    [本文篇幅较长,可以通过目录查看您感兴趣的内容,或者下载格式良好的PDF版本文件查看] 目录 一.ORM的"三国志"    2 1,PDF.NET诞生历程    2 2,Linq2 ...

  5. 用事实说话,成熟的ORM性能不是瓶颈,灵活性不是问题:EF5.0、PDF.NET5.0、Dapper...

    为什么80%的码农都做不了架构师?>>> 目录 一.ORM的"三国志"    2 1,PDF.NET诞生历程    2 2,Linq2Sql&EF:    ...

  6. 用事实说话,成熟的ORM性能不是瓶颈,灵活性不是问题:EF5.0、PDF.NET5.0、Dapper原理分析与测试手记(转)...

    [本文篇幅较长,可以通过目录查看您感兴趣的内容,或者下载格式良好的PDF版本文件查看] 目录 一.ORM的"三国志"    2 1,PDF.NET诞生历程    2 2,Linq2 ...

  7. 大数据学习系列:Hadoop3.0苦命学习(五)

    传送门: 大数据学习系列:Hadoop3.0苦命学习(一) 大数据学习系列:Hadoop3.0苦命学习(二) 大数据学习系列:Hadoop3.0苦命学习(三) 大数据学习系列:Hadoop3.0苦命学 ...

  8. 大数据学习系列:Hadoop3.0苦命学习(七)

    传送门: 大数据学习系列:Hadoop3.0苦命学习(一) 大数据学习系列:Hadoop3.0苦命学习(二) 大数据学习系列:Hadoop3.0苦命学习(三) 大数据学习系列:Hadoop3.0苦命学 ...

  9. Novate:Retrofit2.0和RxJava的又一次完美改进加强(Tamic博客 -CSDN)

    作者/Tamic http://blog.csdn.net/sk719887916/article/details/52195428 前言 用过RxJava和Retrofit的朋友,用久了就会发现Re ...

最新文章

  1. 关于学习Python的一点学习总结(37->集合运算)
  2. 《C++面向对象高效编程(第2版)》——2.20 什么是多线程安全类
  3. 如何在Web服务器IIS 6上配置PHP平台
  4. 新站上线后应该做哪些有利于seo的工作
  5. DL之Encoder-Decoder:Encoder-Decoder结构的相关论文、设计思路、关键步骤等配图集合之详细攻略
  6. python文件输出中文_python文件输出
  7. 【Qt】Qt中的快捷键汇总
  8. 实战经验:如何定位控制文件热点块,即读取延迟高的块所在的ASM磁盘
  9. 在代码中实用协程(二)
  10. ta-lib依赖安装问题
  11. (MoMoCMS教程10)创建留言板
  12. Flutter布局锦囊---蜡笔画的表单
  13. 【优化算法】贪婪策略和变异策略的混合蚁群算法【含Matlab源码 1521期】
  14. 朱松纯:AI 需由“心”驱动,实现“心”与“理”的动态平衡
  15. Linux源码安装pgadmin4,linux安装pgadmin3
  16. html和js制作个人所得税表格,H5编写个税计算器(JS代码编写).doc
  17. Python爬取网易云音乐歌手歌曲和歌单!推荐好听的歌吗?
  18. 计算机类ei和sci期刊,请教大家计算机领域数据挖掘方面有哪些比较好中的EI期刊和SCI期刊 - 论文投稿 - 小木虫 - 学术 科研 互动社区...
  19. 悬浮窗java_Android悬浮窗示例(floatingwindow)
  20. 迅猛快捷——基于Gtid搭建Mysql主从,gtid实现主从切换自动同步——@$23$人鱼的眼泪

热门文章

  1. electron 自动更新 热跟新
  2. php kibana查询,Kibana+Logstash+Elasticsearch 日志查询系统搭建
  3. java解析与生成json数据的四种方式,比如将json字符串转为json对象或json对象转为json字符串
  4. Framer:开源原型设计工具,巨头们的心头好
  5. rk3288 mmap原理学习
  6. debug protractor
  7. Spring控制事务回滚
  8. Robomongo的安装和配置
  9. 怎么才能有写程序的思路
  10. 信息的可再生性举例_举例说说信息的可处理性