我有一个使用1个自定义Docker映像和1个MySQL映像的docker-compose设置。定制的Docker映像包含Apache / PHP / Composer / Node,并在整个项目目录中使用绑定安装,这使开发人员可以使用实时代码重新加载。
由于绑定安装在Docker中的工作方式,我无法在构建期间简单地在我的自定义Docker映像中chown / chmod默认Apache用户的目录,因为绑定安装将简单地还原权限并所有权返回到主机设置。
我考虑过将所有权限/所有权更改为主机项目上的默认Apache用户,以便在构建过程中不需要更改Docker映像。但是,这确实意味着将要求每个开发人员在其计算机上设置默认的Apache用户并将其帐户添加到Apache组(这并不理想),以便他们可以进行代码更改
我不确定是否误解了Docker的工作原理
答案 0 :(得分:1)
如果您使用chown -R <current_user>:www-data <project_logs_dir>
对群组进行了冠名,则会使该群组成为apache,但让用户保留所有者。如果然后将权限设置为775
,则当前用户和apache都可以执行他们需要做的事情,而不必将当前用户添加到apache组中。这还将确保apache只能修改日志目录中的文件。
开发人员必须自己更改权限是对的,但是我认为这是一件好事,因为您可以控制住并可以确定允许在哪里写Apache。
我希望这能回答您的问题。