При развертывании в AppEngine появляется ошибка "слишком много файлов" - PullRequest
0 голосов
/ 16 июня 2020

Следуя этому руководству сообщества по настройке ktor в GCP AppEngine, я дополнительно изменил папку 'webapp', сделав ее полноценным SPA на основе реакции. Запуск npm start в каталоге webapp работает нормально, как и запуск ./gradlew appengineRun во внешнем каталоге. Но при попытке развернуть жалуется, что у меня> 10к файлов. Без подробностей, похоже, что, скорее всего, виноваты node_modules.

При поиске в Интернете в течение нескольких часов старым решением было добавить раздел skipFiles в app.yaml, а новое решение - создать файл. gcloudignore файл. В обоих случаях перечисление node_modules не должно приводить к их развертыванию. Но с учебником, которому я следую, у меня нет файла app.yaml - он, по-видимому, создается из различных конфигураций. xml как часть промежуточного этапа плагина appEngine gradle. Я могу создать файл .gcloudignore, но он не помещается в промежуточную папку развертывания (называемую «build / staged-app»). Даже поместив его туда вручную, он не будет правильно построен, потому что тогда есть skipFiles и .gcloudignore, которые не могут сосуществовать. не знаю, что это может быть. Я пробовал создавать файлы app.yaml в проекте с переопределенными настройками, но на этапе развертывания их не происходит - кажется, он всегда генерирует их с нуля.

Любая идея, как я могу это получить работать? Возможно, я делаю что-то в корне не так?

1 Ответ

0 голосов
/ 16 июня 2020

У вас нет файла app.yaml, потому что вы используете App Engine Gradle Plugin.

EDIT

Кажется, у вас есть следовать исключить синтаксис с использованием элементов <exclude>. В шаблоне * представляет ноль или более любых символов в имени файла или каталога, а ** представляет ноль или более каталогов в пути. Файлы, соответствующие этому элементу, не будут загружены при развертывании приложения AppEngine.

Элемент <include> переопределяет поведение по умолчанию, включающее все файлы. Элемент <exclude> применяется после всех шаблонов (а также по умолчанию, если не указано явное <include>).

В следующем примере показано, как назначить все файлы .png как файлы stati c ( кроме тех, что находятся в каталоге data/ и всех его подкаталогах):

<static-files>
  <include path="/**.png" />
  <exclude path="/data/**.png" />
</static-files>

Вы можете использовать это со своим путем node_modules

...