我正在尝试在谷歌云应用程序引擎(标准环境)上部署 Strapi,但我不断收到 500 服务器错误。我用谷歌搜索了一遍,但没有关于如何在 AE 上成功部署 Strapi 的指南。
我尝试了此线程上的建议:https://github.com/strapi/strapi/issues/2146 所以我有:
- 用于安装依赖项的 gcp-build 脚本
- app.yaml 中用于启动 Strapi 的入口点
- 我在strapi中的database.json和server.json已更新
但它似乎对我不起作用。我不断收到以下错误:
我尝试在谷歌上搜索该错误“app/invalid”,但我似乎找不到任何相关信息。
我还尝试了 Flex 环境,但也失败了(没有正确的错误)。
这是我的 app.yaml 文件:
runtime: nodejs10
instance_class: F2
service: admin
entrypoint: node_modules/strapi/bin/strapi.js
env_variables:
DATABASE_HOST: "host"
DATABASE_PORT: 27017
DATABASE_NAME: "db"
DATABASE_USERNAME: "name"
DATABASE_PASSWORD: "pw"
DATABASE_SRV: true
DATABASE_AUTHENTICATION_DATABASE: "admin"
DATABASE_SSL: true
NODE_ENV: "production"
PORT: 1337
这是我的package.json(重要部分):
...
"scripts": {
"strapi": "node_modules/strapi/bin/strapi.js",
"gcp-build": "node node_modules/strapi/lib/utils/post-install.js && cd admin && npm run setup"
}
...
"engines": {
"node": ">=10.0.0",
"npm": ">=6.0.0"
},
生产数据库.json:
{
"defaultConnection": "default",
"connections": {
"default": {
"connector": "strapi-hook-mongoose",
"settings": {
"client": "mongo",
"host": "host",
"port": 27017,
"database": "db",
"username": "name",
"password": "pw",
"srv": true
},
"options": {
"authenticationDatabase": "admin",
"ssl": true
}
}
}
}
最后这是我的 server.json 文件:
{
"host": "https://admin-dot-ootje-website.appspot.com",
"port": 1337,
"production": true,
"proxy": {
"enabled": false
},
"autoReload": {
"enabled": false
},
"cron": {
"enabled": false
},
"admin": {
"autoOpen": false
}
}
我希望这可以通过 AE 的入门指南来实现,但我似乎遗漏了一些东西。有人知道这个错误是什么意思吗?有人设法在 AE 上部署 Strapi 吗?
如果我让它工作,我想将它添加到 Strapi 文档或中型帖子中,以便其他人比我更容易找到它:)
提前致谢!
最佳答案
我认为您的问题是从 server.json 文件中提供的。
此配置适用于我:
{
"host": "localhost",
"port": "${process.env.PORT || 1337}",
"production": true,
"proxy": {
"enabled": false
},
"autoReload": {
"enabled": false
},
"cron": {
"enabled": false
},
"admin": {
"autoOpen": false
}
}
我正在编写一个新的配置文件,以便使身份验证提供程序正常工作......以及一些其他功能。但第一个版本对我来说很有效。
如果您需要,我会随时向您通报我的搜索最新情况。
## 更新 1 ##
我在生产模式下发现了 GCP 的良好配置。 如果其他人需要,我会分享它:
{
"host": "localhost",
"port": "${process.env.PORT || 1337}",
"production": true,
"proxy": {
"enabled": true,
"ssl": true,
"host": "[project-name].appspot.com",
"port": 443
},
"autoReload": {
"enabled": false
},
"cron": {
"enabled": false
},
"admin": {
"autoOpen": false
}
}
我在 GCP 上使用灵活环境,但我认为这可以在标准模式下工作。
谢谢
关于node.js - 如何在谷歌云平台上部署strapi?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55685330/