【问题标题】:How to deploy strapi on google cloud platform?如何在谷歌云平台部署strapi?
【发布时间】:2019-04-15 08:36:37
【问题描述】:

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

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

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

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

我尝试用谷歌搜索那个错误“app/invalid”,但我似乎找不到任何相关信息。

我也给了 flex env 一个旋转,但也失败了(没有正确的错误)。

这是我的 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 docs或medium post让其他人比我更容易找到它:)

提前致谢!

【问题讨论】:

    标签: node.js google-cloud-platform strapi


    【解决方案1】:

    我认为您的问题来自 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 上使用 flexible 环境,但我认为这将在 standard 模式下工作。

    谢谢,

    【讨论】:

    • 感谢您的回复!我要试试这个,你能分享你的 app.yaml 吗?你使用 gcp-build 脚本吗?
    猜你喜欢
    • 2014-11-21
    • 1970-01-01
    • 2017-07-21
    • 2020-03-09
    • 2020-06-17
    • 2018-03-08
    • 2020-06-02
    • 2015-08-17
    • 1970-01-01
    相关资源
    最近更新 更多