如何在Google Cloud Platform上部署Stradi?

时间:2019-04-15 08:36:38

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

我正在尝试在Google Cloud App Engine(标准env)上部署Stradi,但我仍然收到500台服务器错误。我到处搜索Google,但没有编写有关如何在AE上成功部署Stradi的指南。

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

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

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

我尝试谷歌搜索该错误“ 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"
  },

生产database.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上部署了bandi吗?

如果它能正常工作,我想将其添加到trapi文档或中等职位中,以使其他人比我更容易找到它:)

谢谢!

1 个答案:

答案 0 :(得分:0)

我认为您的问题来自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 环境,但是我认为它可以在标准模式下工作。

谢谢