外观
踩坑GitHub frankarobotics/franka_description2 个月前
franka_description Docker构建因UID/GID与基础镜像用户冲突失败
本文由 AI 根据公开内容整理,可能有误,请以原文为准:Dockerfile fails to build when UID/GID matches with the existing docker image user(GitHub frankarobotics/franka_description #28)
状态:已解决
问题
在osrf/ros:jazzy-desktop基础镜像上构建franka_description时,若宿主机传入的USER_UID/USER_GID(如1000:100)与镜像内已有ubuntu用户ID重合,RUN groupadd和useradd命令会报GID/UID already exists错误导致构建中断。
环境
基础镜像osrf/ros:jazzy-desktop;franka_description仓库main分支;宿主机用户UID:GID为1000:100、1000:1000等常见组合;Ubuntu系统默认首用户账户。
解决办法
- 在Dockerfile中groupadd/useradd指令前添加
RUN if id -u $USER_UID ; then userdel $(id -un $USER_UID) ; fi以清理冲突ID。 - 或采用非破坏性修复:仅在ID未被占用时创建用户组与用户,后续操作统一使用UID:GID引用账户而非用户名。
- 确保useradd命令包含
-s /bin/bash参数以正确设置登录Shell。 - 验证修复后HOME目录、/workspaces所有权、XDG_RUNTIME_DIR及xacro工具均正常可用。
讨论原作者:@arntanguy 等,版权归原作者所有。
来源
本页事实对应的公开页面,以原文为准。