gpt4 book ai didi

Laravel/Docker - 容器无法将日志保存到绑定(bind)挂载中

转载 作者:行者123 更新时间:2023-12-02 19:28:55 25 4
gpt4 key购买 nike

我有一个使用 1 个自定义 Docker 镜像和 1 个 MySQL 镜像的 docker-compose 设置。自定义 Docker 镜像包含 Apache/PHP/Composer/Node 并为整个项目目录使用绑定(bind)挂载,这允许开发人员使用实时代码重新加载。

由于绑定(bind)挂载在 Docker 中的工作方式,我无法在构建期间简单地 chown/chmod 自定义 Docker 镜像中默认 Apache 用户的目录,因为绑定(bind)挂载只会将权限和所有权恢复为主机设置。

我考虑将所有权限/所有权更改为主机项目上的默认 Apache 用户,以便在构建过程中不需要更改 Docker 镜像。但是,这确实意味着每个开发人员都需要在他们的机器上设置默认的 Apache 用户并将他们的帐户添加到 Apache 组(这并不理想),以便他们可以进行代码更改

我不确定我是否误解了 Docker 的工作原理

最佳答案

如果你用chown -R <current_user>:www-data <project_logs_dir> chown 组,它将使 apache 组,但让用户保持所有者。如果您随后将权限设置为 775当前用户和 apache 都可以做他们需要做的事情,而无需将当前用户添加到 apache 组。这也将确保 apache 只能修改日志目录中的文件。

确实,开发人员必须自己更改权限,但我认为这是一件好事,因为您仍然可以控制并且可以确定允许 apache 写入的位置。

我希望这回答了你的问题。

关于Laravel/Docker - 容器无法将日志保存到绑定(bind)挂载中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53556911/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com