如何在没有运行composer的情况下在Google App Engine上部署php应用程序?

如何在没有运行composer的情况下在Google App Engine上部署php应用程序?,php,google-app-engine,google-cloud-platform,composer-php,Php,Google App Engine,Google Cloud Platform,Composer Php,正如你在这里看到的: Google App Engine“当您部署应用程序的新版本时,Composer将自动运行…” 我宁愿它没有。我有一些在部署之前运行的脚本,可以删除已部署应用程序(文档、测试等)中不需要的composer依赖项中的所有不必要的内容 My.gcloudignore文件不包括/vendor目录,这由上载时的文件计数确认。但是,当我检查部署的源时,composer依赖项与我清理的本地依赖项不匹配,因为App Engine正在覆盖它们 不确定为什么这是一个特性,首先,似乎最好让开发

正如你在这里看到的:

Google App Engine“当您部署应用程序的新版本时,Composer将自动运行…”

我宁愿它没有。我有一些在部署之前运行的脚本,可以删除已部署应用程序(文档、测试等)中不需要的composer依赖项中的所有不必要的内容

My.gcloudignore文件不包括/vendor目录,这由上载时的文件计数确认。但是,当我检查部署的源时,composer依赖项与我清理的本地依赖项不匹配,因为App Engine正在覆盖它们

不确定为什么这是一个特性,首先,似乎最好让开发人员控制它

我确实启用了计费功能,而且功能齐全。谢谢


编辑

我将composer.json和composer.lock文件添加到ignore文件以防止更新,然后部署的源代码中完全缺少vender目录。供应商目录不在忽略的文件中,已上载。例如,如果我添加依赖项,则上载文件计数将反映添加的依赖项文件的文件计数


这让我想知道,在部署过程中,上传之后是否有什么东西在运行,以删除供应商目录。默认情况下,它们会在忽略文件中将其删除。我认为,通过取出它,可以上传和部署它(供应商目录)

我一直在努力复制您的问题,并试图实现您所描述的所有您需要实现的事情。我发现了一些有趣的事情

我希望在您将供应商/文件夹部署到GAE时查看其确切行为,并确切了解问题的原因,因此我遵循以下步骤:

  • 克隆一个简单的PHP项目只是为了节省时间
  • 本地安装了composer,因此我可以要求依赖项
  • 我需要一个简单的依赖项(因此它会创建vendor/、composer.json、composer.lock)

    composer需要phpunit/php定时器

  • 这使我在本地拥有依赖项,因此它可以直接上载它们。在尝试部署之前,是否可以尝试使用composer文件执行此操作

  • 我做了gcloud应用部署,它上传了所有内容,我仍然怀疑这是我的本地文件夹还是在运行时生成的
  • 然后我做了一个简单的.gcloudignore作为测试,在其中添加了test*,部署了一个gcloud应用程序,它上传了除了测试文件夹之外的所有内容
  • 在这里你可以指定你想要避免上传的所有内容,我认为这将是一个更容易解决所有问题的解决方案。是你可以使用的.gcloudignore格式

    这对我很有用,希望能帮到你

    让我知道