我正在弹性beanstalk上部署我的API。每次启动实例时,我都需要一个特定的文件夹" temp_storage"具有写访问权限,因为这是我存储图像的位置,同时在上传到S3存储桶之前调整它们的大小。我还需要安装一些作曲家程序。
我的设置是
fd-api/
composer.json (These need to be installed)
temp_storage/ (This folder needs write access)
.ebextensions/
temp-folders.config
TEMP-folders.config
container_commands:
chown_folder:
command: "chown -R webapp /var/www/html/fd-api/temp_storage"
chmod_folder:
command: "chmod 777 /var/www/html/fd-api/temp_storage"
这是我对它应该如何工作的理解,但当我尝试运行时,我得到了错误:
在实例ID上执行不成功的命令' i-03f5ed1eb55f52d17'。中止行动。
无法部署应用程序。
在中止部署期间,某些实例可能已部署新的应用程序版本。要确保所有实例都运行相同的版本,请重新部署相应的应用程序版本。
我不知道从哪里开始调试这个?我从阅读中理解的是,每次生成弹性beanstalk实例并且将运行.ebextension / something.config文件中的任何命令时,composer文件将自动运行。
不确定用户的webapp是什么?假设它是弹性beanstalk实例的默认用户?
任何帮助都会很棒。
答案 0 :(得分:1)
解决方案是.ebextensions文件中的命令以字典顺序运行。通过在命令名称之前添加001,002,003,...,如:
container_commands:
001create_folder_nonsudo:
command: "mkdir temp_storage"
002chown_folder:
command: "chown webapp temp_storage"
003chmod_folder:
command: "chmod 777 temp_storage"
最终解决了我的问题