AWS - Elastic Beanstalk安装命令

时间:2017-12-11 16:03:43

标签: amazon-web-services amazon-ec2 elastic-beanstalk

我正在弹性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实例的默认用户?

任何帮助都会很棒。

1 个答案:

答案 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"

最终解决了我的问题