gpt4 book ai didi

linux - 如何为 Elastic Beanstalk 上的特定容器设置文件夹权限

转载 作者:IT王子 更新时间:2023-10-29 00:45:23 25 4
gpt4 key购买 nike

我在为 Elastic Beanstalk 上的 Web 文件夹设置权限时遇到问题。我在一个实例中使用自定义 docker 图像运行多个容器:apache-php、mysql、memcached 等。对于容器“apache-php”,我将包含我的 yii2 应用程序的文件夹映射到/var/www/html/。

当我手动制作 bundle 并通过 Elastic Beanstalk 控制台上传/部署时,我确定拥有该文件夹的正确权限并且一切正常。

现在,当我使用“eb deploy”部署应用程序时,它会放弃所有权限并且我收到服务器错误和“Web 进程不可写的目录:/var/www/html/backend/web/assets "在日志中。

我可以通过 ssh 连接并手动设置必要的权限,但这肯定不方便,因为每次我重新部署应用程序时都需要这样做。

那么,我的问题是,在 Elastic Beanstalk 上为特定容器中的特定文件夹自动设置权限的最佳方式是什么?

也许,我可以使用 .ebextensions,但我没有找到如何为特定容器运行“container_commands”。

最佳答案

AWS EB 部署在 /var/app/ondeck 中启动您的应用程序

  1. 部署 Elastic Beanstalk 时,您的应用程序首先解压到 /var/app/ondeck/
    • 最有可能的是,您正在部署的本地文件夹没有您想要的权限。
  2. 如果您需要在部署期间调整您的应用程序或 shell,.ebextensions/*.config 是执行此操作的正确位置。

容器命令应该运行到该路径

但请记住,无论是否需要,这些命令都会在您每次部署时运行,除非您使用某种方法来测试预配置。

container_commands:
08user_config:
test: test ! -f /opt/elasticbeanstalk/.preconfig-complete
command: |
echo "jail-me" > /home/ec2-user/.userfile
09writable_dirs:
command: |
chmod -R 770 /var/app/ondeck/backend/web/assets
chmod -R 770 /var/app/ondeck/[path]
99complete:
command: |
touch /opt/elasticbeanstalk/.preconfig-complete

files:
"/etc/profile.d/myalias.sh":
mode: "000644"
owner: root
group: root
content: |
alias webroot='cd /var/www/html/backend/web; ls -al --color;'
echo " ========== "
echo " The whole point of Elastic Beanstalk is that you shouldn't need to SSH into the server. "
echo " ========== "

关于linux - 如何为 Elastic Beanstalk 上的特定容器设置文件夹权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34944651/

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