通过Dockerfile为非root用户创建文件失败问题咨询
问题根因
你在容器启动命令中使用了绑定挂载参数 -v /home/test/Work:/home/test,该配置会将宿主机的 /home/test/Work 目录直接映射到容器内的 /home/test 路径,完全覆盖镜像构建阶段生成的 /home/test 目录下的所有内容,因此你写入到镜像内该路径的 .bashrc 文件会被挂载的宿主机目录遮蔽,无法被访问到。
验证方法
移除 -v 挂载参数后启动镜像,进入容器查看 /home/test 路径,即可看到构建阶段写入的 .bashrc 文件,确认问题来源。
可选解决方案
- 调整挂载路径,将业务需要的目录挂载到
/home/test的子路径下,比如-v /home/test/Work:/home/test/Work,避免覆盖整个用户家目录 - 若必须挂载整个家目录,可以在启动容器时添加初始化逻辑,将镜像中提前备份的
.bashrc复制到挂载后的目录中 - 将自定义的bash配置写入到全局生效路径(如
/etc/bash.bashrc),不受用户家目录挂载的影响
内容的提问来源于stack exchange,提问作者sixers
相关产品推荐
相关产品推荐

