执行docker-compose up --build遇权限错误,容器为何创建/Users目录?
问题原因与解决方法
为什么容器尝试创建/Users目录?
核心原因是Docker Desktop未获得MacOS系统/Users目录的访问权限。
你的nepa_api服务配置了绑定挂载- ./:/app,即把本地当前目录(路径为/Users/alexrein/Documents/projects/cdm/tur)挂载到容器内的/app目录。Docker需要在宿主机(你的Mac)上读取该本地目录,但如果Docker Desktop没有被授予/Users目录的访问权限,就会触发权限错误——错误信息中“尝试创建/Users目录”是Docker内部处理挂载时的异常表现,本质是无法访问/Users下的子目录。
另外,Dockerfile中的VOLUME ["app"]指令属于冗余配置,可能加剧混淆:这条指令会在容器内基于WORKDIR /app创建/app/app作为卷挂载点,但你已经通过docker-compose配置了绑定挂载到/app,这会覆盖容器内的/app目录结构,该VOLUME指令在这里没有实际作用。
解决步骤
授予Docker Desktop访问/Users目录的权限
- 打开Docker Desktop,进入「偏好设置」→「Resources」→「File Sharing」页面。
- 检查列表中是否存在
/Users目录:- 若不存在,点击
+按钮添加/Users目录; - 若已存在,确保该目录处于勾选状态。
- 若不存在,点击
- 点击「Apply & Restart」重启Docker Desktop,使权限设置生效。
移除冗余的VOLUME指令(可选但推荐)
编辑你的Dockerfile,删除VOLUME ["app"]这一行,避免不必要的卷配置冲突。
内容的提问来源于stack exchange,提问作者Alex
相关产品推荐
相关产品推荐

