Как развернуть strapi на облачной платформе Google?

#node.js #google-cloud-platform #strapi

#node.js #google-облачная платформа #strapi

Вопрос:

Я пытаюсь развернуть strapi на Google Cloud App Engine (стандартный env), но я продолжаю получать ошибку сервера 500. Я погуглил все, но не было написано никаких руководств о том, как успешно развернуть strapi на AE.

Я попробовал предложения в этой теме: https://github.com/strapi/strapi/issues/2146 Так что у меня есть:

  • скрипт gcp-build для установки зависимостей
  • точка входа в app.yaml для запуска strapi
  • мои database.json и server.json в strapi обновлены

Но, похоже, у меня это не работает. Я продолжаю получать следующую ошибку: журнал

Я попытался погуглить эту ошибку «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 amp;amp; cd admin amp;amp; 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, но, похоже, я что-то упускаю. Кто-нибудь знает, что означает эта ошибка? Кому-нибудь удалось уже развернуть strapi на AE?

Если у меня получится, я бы хотел добавить его в документы strapi или в medium post, чтобы другим людям было проще, чем мне 🙂

Заранее спасибо!

Ответ №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, но, думаю, это будет работать в стандартном режиме.

Спасибо,

Комментарии:

1. спасибо за ответ! Я собираюсь попробовать это, не могли бы вы поделиться своим app.yaml? Используете ли вы сценарий gcp-сборки?