我正在使用 Elastic Beanstalk 环境来托管我的 Laravel 应用程序。
当我使用 EB CLI 进行部署时,我使用 CodeCommit 作为代码源。
最后,我使用 .ebextensions 文件夹中的 init.config 文件自动为我的 EC2 实例运行一些命令。
//init.config inside .ebextensions
container_commands:
01storagelink:
command: "php artisan storage:link"
当我进行部署时,此命令正在工作,但它将公共/存储链接到一个意外的路径(对我来说),如图所示:
其实应该是这样的:
我该如何解决这个问题? (同时我将继续研究)
我已经找到了为什么它在暂存目录下创建符号链接:
遗憾的是我没有阅读文档的相关部分,但当时我有点着急。
我没有找到解决方案,而是发现我需要设置外部存储:
如何在 aws Elastic beanstalk 中更新 laravel 项目,同时保持相同的存储
因此,我设置了一个 S3 存储桶,暂时不需要存储:链接。
AWS EB 部署工作流程由多个不同的阶段组成。
正如您所提到的,
/.ebextensions
中的命令文件在/var/app/staging
工作区中运行。
因此,所有与应用程序相关的命令都应在部署后阶段执行。
运行 .platform/hooks/postdeploy 中找到的任何可执行文件 源包的目录