我创建了一个dockerfile来容纳我的Laravel应用程序用于本地开发环境。如何共享Docker容器中的Laravel应用程序代码库,同时保留权限?
到目前为止,我已经实现了大部分我所需要的,但是,每一个命令跑进容器(如composer install
和等)会改变我的代码库文件与集装箱root
的UID和生成权限在我的主机冲突。
到目前为止,这是我dockerfile
https://github.com/timegridio/dockerfiles和my project codebase(需要时)。
我的研究,我已经试过和this question给出一些提示的recommendations of this article,我认为似乎是相当接近的我需要什么。然而,我没有成功地处理这些问题,并且遇到了错误(请参阅我粘贴输出的question comments,但我不想在这个问题上混用这种方法)。
谢谢你的时间!
感谢您的回答,它澄清。我尝试了一些改变并回传。是的,我的意思是'docker exec'下的变化,是的,我希望dockerfile对其他用户是可移植的,这就是为什么我更喜欢依赖硬编码的UID或尽可能少的参数。病后回来! – alariva
我明白了,但是,我无法使其工作。将容器作为另一个用户运行会导致mysqld失败。使用exec作为另一个用户使我无法修改以根用户身份创建的文件。有什么方法可以在构建时切换UID(通过外部参数获取此值)? – alariva
是使用Dockerfile中的USER指令和AUX。你可以例如让docker run按原样运行,但改变docker exec –