【发布时间】:2020-10-11 05:27:34
【问题描述】:
所以我正在尝试将我的 laravel 应用程序 (v7) 部署到弹性 beantalk。我看过指导上传包含 .env 文件的 zip 文件并更新 config.database 以使用全局 RDS_* 环境变量的教程。
这对我不起作用,因为我想使用 codepipline 和 codebuild 来使用 git hooks 构建我的应用程序。我试图设置它,但我的代码构建没有成功构建,因为在我的 pubsec.yaml 文件中我添加了常用的 laravel 设置命令,例如安装依赖项和迁移应用程序的数据库。
迁移数据库是我遇到的问题。不知何故,codebuild 似乎没有为我的应用程序数据库获取 RDS_* 变量。我在这里被困了一段时间。
这让我质疑 codebuild 如何处理环境变量。它如何创建用于部署的 .env 文件?我什至添加了一个 Linux 命令来将我的 .env.example 复制到一个新的 .env 文件中,但遇到了同样的问题。
任何帮助将不胜感激。谢谢
日志上的错误:
SQLSTATE[HY000] [2002] 连接被拒绝(SQL: select * from information_schema.tables 其中 table_schema = forge 和 table_name = 迁移 和 table_type = 'BASE TABLE') ```【问题讨论】:
-
你能澄清你的意思吗? CodeDeploy 无法部署到 ElasticBeanstalk。 CodePipeline 本身使用
AWS Elastic Beanstalk的Deploy操作提供程序处理向 EB 的存款。 -
我的管道的 codedeploy 构建步骤失败,因为似乎由 codeploy 在其容器中构建的应用程序无法访问 RDS_* 数据库 .env 变量,因此我的数据库迁移失败。跨度>
-
你是说 CodeBuild 吗?抱歉,我不明白 CodeDeploy 在您的 CodePipeline 中的作用。
-
Yes codebuild... 我已经编辑了我的问题以反映这一点。感谢收看
-
那么你的
buildspec.yml文件是什么? CodeBuild 仅执行您在buildspec.yml文件中指定的内容。
标签: laravel amazon-web-services amazon-elastic-beanstalk amazon-rds