【发布时间】:2018-05-05 08:35:10
【问题描述】:
我正在将 Laravel 应用程序部署到多容器 Elastic Beanstalk 配置中。应用程序代码打包在一个 zip 文件中并作为部署的一部分上传,然后安装到 PHP-FPM Docker 容器中。容器正确运行并且代码已挂载,但是所有已挂载的目录都归root 所有,因此应用程序无法写入这些目录(日志文件、框架文件等需要)。我需要它们归www-data 拥有
如果我在 EC2 实例上手动 SSH,然后运行 docker exec -it container_id bash 并运行 ls -la 我可以看到所有文件/目录都归 root 所有。如果我运行chown -R www-data: storage vendor,那么应用程序将按预期工作。
因此我需要找到一种方法来更改 php-fpm 容器内部已挂载目录的权限。
我在.ebextensions/permissions.config中尝试了以下命令
container_commands:
01_change_storage_permissions:
# Get the php fpm container ID and change permissions on the mounted directories
command: sudo docker exec $(sudo docker ps -aqf "name=php-fpm") chown -R www-data:www-data storage vendor bootstrap
部署成功,因此我可以假设命令已成功执行,但不幸的是它似乎没有更改权限,因为登录到容器时,目录仍归 root 所有
【问题讨论】:
标签: php linux amazon-web-services docker amazon-elastic-beanstalk