node.js - 如何在谷歌云平台上部署strapi?

标签 node.js google-cloud-platform strapi

我正在尝试在谷歌云应用程序引擎(标准环境)上部署 Strapi,但我不断收到 500 服务器错误。我用谷歌搜索了一遍,但没有关于如何在 AE 上成功部署 Strapi 的指南。

我尝试了此线程上的建议:https://github.com/strapi/strapi/issues/2146 所以我有:

  • 用于安装依赖项的 gcp-build 脚本
  • app.yaml 中用于启动 Strapi 的入口点
  • 我在strapi中的database.json和server.json已更新

但它似乎对我不起作用。我不断收到以下错误: log

我尝试在谷歌上搜索该错误“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/

相关文章:

javascript - GatsbyJS 在从其他组件呈现 GraphQL 查询时出现问题

deployment - 在 DigitalOcean 上部署 Strapi App 时出现 Pm2 错误

node.js - Sequelize.js 如何从 MySQL 映射 varbinary 类型

node.js - 接收 TypeError : AWS. RDSDataService 不是构造函数

node.js - 哪个 Node 给出了很奇怪的结果

java - App Engine Java Servlet 中收到 OAuthRequestException

php - 如何让 Node.js 与 vagrant share 一起工作?

python - 502 错误网关错误,ModuleNotFoundError : No module named 'flask_wtf' when i deploy my project to google cloud

sql - 使用 Bigquery 的库和 api 进行查询是否有限制?

docker - 无法使用 Docker 运行 Strapi