symfony - 将 Symfony 4 应用程序部署到 Google App Engine 时出现安全检查器错误

标签 symfony google-app-engine composer-php

使用 gcloud 应用程序部署将 Symfony 4 应用程序部署到 Google App Engine (Flex)。

安装依赖项后构建失败:

Step #1: Executing script cache:clear [OK]
Step #1: Executing script assets:install public [OK]
Step #1: Executing script security-checker security:check [KO]
Step #1: [KO]
Step #1: Script security-checker security:check returned with error code 127
Step #1: !! sh: 1: security-checker: not found
Step #1: !! 
Step #1: Script @auto-scripts was called via post-install-cmd
Step #1: error building image: error building stage: waiting for process to exit: exit status 127
Finished Step #1
ERROR

我的 Composer “脚本”如下所示:

"scripts": {
    "auto-scripts": {
        "cache:clear": "symfony-cmd",
        "assets:install %PUBLIC_DIR%": "symfony-cmd",
        "security-checker security:check": "script"
    },
    "post-install-cmd": [
        "@auto-scripts"
    ],
    "post-update-cmd": [
        "@auto-scripts"
    ]
}

我在部署之前运行了 Composer update 并预热了 prod env 的缓存。

为什么构建失败?

最佳答案

看来您的安全检查设置不正确:

  • 这是相关的配置行:
   "security-checker security:check": "script"
  • 这些是显示相应调用失败的日志行:
Step #1: Executing script security-checker security:check [KO]
Step #1: [KO]
Step #1: Script security-checker security:check returned with error code 127

这意味着尝试但失败的命令是security-checker security:check。实际的失败原因在后续行中揭示:

Step #1: !! sh: 1: security-checker: not found

这意味着 shell 找不到合适的安全检查器可执行文件。造成这种情况的原因可能有多种,包括脚本本身或执行环境的问题,例如:

  • 脚本尚未创建
  • 该脚本实际上有不同的名称
  • 脚本的位置不在执行路径中,因此还需要指定其路径,而不仅仅是其文件名(或者脚本的目录需要包含在执行路径中)。

要修复构建,您可以:

  • 注释/取出相应的配置行
  • 如果配置行有误,请更正,例如与实际环境不匹配
  • 调整环境以匹配配置(如果配置被认为对于预期用途是正确的)。

关于symfony - 将 Symfony 4 应用程序部署到 Google App Engine 时出现安全检查器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54365502/

相关文章:

Symfony2 trans_default_domain 不工作

php - 有哪些方法可以在数据库中存储项目的顺序?

ajax - 如何将 Ajax 与 Symfony2 集成

java - Google App Engine 未部署新的 web.xml

java - Google App Engine Cron 作业

python - GAE、oauth2 和管理员用户

laravel - 通过Composer安装Laravel时获得建议

azure - 使用 Azure 和调用图保护我的 Symfony API

php - 如何作曲安装最新的 require-dev 和最低的 require-dev

amazon-web-services - 应用服务器启动后如何运行 Chef Recipe