You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

构建Android Cuttlefish Docker镜像时的权限与文件复制问题

解决Android Cuttlefish Docker容器构建的两类问题

问题1:root身份执行构建时的UID冲突错误

以root身份运行./build.sh --rebuild_debs_verbose时,出现useradd: UID 0 is not unique报错,原因是root用户的UID为0,而Docker容器内默认已存在UID为0的root用户,脚本尝试创建同UID的vsoc-01用户导致冲突。

解决办法:

  • 方式1:执行脚本时手动指定非0的UID环境变量(比如普通用户常用的1000):
    UID=1000 ./build.sh --rebuild_debs_verbose
    
  • 方式2:修改docker目录下的Dockerfile,将RUN useradd指令中的$UID替换为固定非0值:
    RUN useradd -ms /bin/bash vsoc-01 -d /home/vsoc-01 -u 1000 && passwd -d vsoc-01 && echo 'vsoc-01 ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers
    
  • 方式3:直接用已加入docker用户组的普通用户执行脚本(无需sudo)。

问题2:普通用户使用无根Docker时,cp操作错误指向主机目录

该问题是因为脚本中的部分文件复制逻辑未限定在Docker构建上下文内,错误直接操作主机的/home/vsoc-01路径。

解决办法:

  1. 检查build.sh中的cp命令,确保所有文件复制操作都通过Dockerfile的COPY或RUN指令执行,而非直接在主机环境运行。
  2. 确保构建上下文正确:所有需要复制到容器的文件都放在docker目录(或指定的构建上下文目录)下,避免引用主机绝对路径。
  3. 调整无根Docker权限:确保当前用户拥有Docker操作权限,且主机上不存在/home/vsoc-01目录(或脚本中不要直接引用该主机路径)。

内容的提问来源于stack exchange,提问作者Diego Kvara

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 20:20:29