使用 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/