首页 文章

AWS - Elastic Beanstalk安装命令

提问于
浏览
0

我正在弹性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"

这是我对它应该如何工作的理解,但是当我尝试运行它时,我得到了错误:

在实例标识'i-03f5ed1eb55f52d17'上执行命令失败 . 中止操作 . 无法部署应用程序 . 在中止部署期间,某些实例可能已部署新的应用程序版本 . 要确保所有实例都运行相同的版本,请重新部署相应的应用程序版本 .

我不知道从哪里开始调试这个?我从阅读中理解的是,每次生成弹性beanstalk实例并且将运行.ebextension / something.config文件中的任何命令时,composer文件将自动运行 .

不确定用户webapp是什么?假设它是弹性beanstalk实例的默认用户?

任何帮助都是极好的 .

1 回答

  • 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"
    

    最终解决了我的问题

相关问题