如何在dockerfile中修改docker-compose.yml中挂载到容器的卷的所属用户组
问题背景:
在docker-compose中通过volumes把Mac上的项目目录挂载到PHP容器中,我想修改PHP容器中,挂载卷的所属用户以及所属用户组。因此,我在dockerfile中通过RUN指令运行mkdir、chown,结果是毫无作用。
原因是:RUN 是在 docker build时运行,因此容器都不一定存在。
解决方案:
在dockerfile中使用CMD指令,CMD 在docker run 时运行。将mkdir、chown放到一个shell脚本中,通过CMD [ "/bin/bash", "/tmp/startup.sh"]调shell脚本。调用该shell脚本之前要用dockerfile的COPY指令将shell脚本copy到容器的某个目录中,例如/tmp目录