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

Docker-Compose执行RUN sudo gem update --system失败求助

解决Docker构建时sudo: effective uid is not 0错误

原因分析

你使用的circleci/ruby:2.7.5-node镜像默认以circleci普通用户运行,该用户无sudo权限,且镜像内文件系统可能开启了nosuid选项,导致sudo无法正常提权。

解决方案

方案1:移除sudo直接执行命令

circleci镜像的gem已配置为允许普通用户操作,无需sudo,直接修改Dockerfile中的命令:

RUN gem update --system

方案2:切换到root用户执行后切回

若必须使用root权限,可在Dockerfile中先切换到root,执行完命令再切回circleci用户:

USER root
RUN gem update --system
USER circleci

方案3:检查Docker Desktop文件共享设置

Windows Hyper-V环境下,需确保Docker Desktop的文件共享功能正常开启,且仓库所在目录已添加到共享列表:

  • 打开Docker Desktop设置 → Resources → File Sharing
  • 勾选仓库所在驱动器,点击Apply & Restart

验证操作

修改Dockerfile后,重新执行构建命令:

docker-compose down && docker-compose up --build

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 22:45:31