Развертывание статического файла встроенного приложения React в Cloud Foundry, похоже, предполагает развертывание Node, даже с buildpack - PullRequest
0 голосов
/ 05 июля 2019

В настоящее время я пытаюсь развернуть встроенное приложение React в Cloud Foundry. В React нет ничего особенного, и он без проблем упаковывается в набор статических файлов. Однако, когда я пытаюсь выполнить развертывание на CF, я получаю следующую ошибку:

16:24:44.467: [APP/PROC/WEB.0] bash: npm: command not found
16:24:44.519: [APP/PROC/WEB.0] Exit status 127

Это мой манифест, поэтому я крайне озадачен тем, почему происходит эта ошибка.

applications:
- name: whatever
  path: build
  memory: 64M
  instances: 1
  disk_quota: 1024M
  buildpacks: 
  - https://github.com/cloudfoundry/staticfile-buildpack.git

Я попытался развернуть как из папки верхнего уровня, так и из папки build, и я попытался также включить сборку пакета Node (который, я знаю, не будет работать, потому что он не имеет директивы для npm start).

Полный журнал развертывания находится здесь:

16:21:27.583: [STG.0] -----> Running go build supply
16:21:27.583: [STG.0] /tmp/buildpackdownloads/49e489d3547d6eb82fdd6227f8309290 ~
16:21:34.358: [STG.0] ~
16:21:34.389: [STG.0] -----> Staticfile Buildpack version 1.4.43
16:21:34.389: [STG.0]        **WARNING** 
16:21:34.389: [STG.0]        !! !!
16:21:34.389: [STG.0]        This application is being deployed on cflinuxfs2 which is being deprecated in April, 2019.
16:21:34.389: [STG.0]        Please migrate this application to cflinuxfs3.
16:21:34.389: [STG.0]        For more information about changing the stack, see https://docs.cloudfoundry.org/devguide/deploy-apps/stacks.html
16:21:34.389: [STG.0]        !! !!
16:21:34.389: [STG.0] -----> Installing nginx
16:21:34.389: [STG.0]        Using nginx version 1.15.12
16:21:34.389: [STG.0] -----> Installing nginx 1.15.12
16:21:34.389: [STG.0]        Copy [/tmp/cache/final/dependencies/742479b4d3f80b641ae394b6c5699e126e53f25198dfbcd9a5e54b66413ecba0/nginx-1.15.12-linux-x64-cflinuxfs2-4d0440ef.tgz]
16:21:34.667: [STG.0] -----> Running go build finalize
16:21:34.667: [STG.0] /tmp/buildpackdownloads/49e489d3547d6eb82fdd6227f8309290 ~
16:21:38.930: [STG.0] ~
16:21:38.951: [STG.0] -----> Root folder /tmp/app
16:21:38.951: [STG.0] -----> Copying project files into public
16:21:38.954: [STG.0] -----> Configuring nginx
16:21:39.207: [API.1] Creating droplet for app with guid 3df28cf5-8faf-40ef-a4e7-4e9658df9926
16:21:40.395: [STG.0] Exit status 0
16:21:40.395: [STG.0] Uploading droplet, build artifacts cache...
16:21:40.396: [STG.0] Uploading build artifacts cache...
16:21:40.396: [STG.0] Uploading droplet...
16:21:40.780: [STG.0] Uploaded build artifacts cache (2.7M)
16:21:42.060: [STG.0] Uploaded droplet (3.1M)
16:21:42.062: [STG.0] Uploading complete
16:21:42.134: [STG.0] Cell 3a98d2c0-2583-48dd-aa40-b72fe78267cf stopping instance bd85c2ad-6a00-405f-bbf0-c96d429fda43
16:21:42.134: [STG.0] Cell 3a98d2c0-2583-48dd-aa40-b72fe78267cf destroying container for instance bd85c2ad-6a00-405f-bbf0-c96d429fda43
16:21:45.333: [STG.0] Cell 3a98d2c0-2583-48dd-aa40-b72fe78267cf successfully destroyed container for instance bd85c2ad-6a00-405f-bbf0-c96d429fda43
16:21:46.397: [API.1] Process has crashed with type: "web"
16:21:46.422: [API.1] App instance exited with guid 3df28cf5-8faf-40ef-a4e7-4e9658df9926 payload: {"instance"=>"60e81bb4-79cd-4a42-6101-359c", "index"=>0, "reason"=>"CRASHED", "exit_description"=>"APP/PROC/WEB: Exited with status 127", "crash_count"=>2, "crash_timestamp"=>1562358175613734337, "version"=>"7e7a157a-d48a-47fc-863b-80193bad0461"}
16:21:47.750: [API.4] Process has crashed with type: "web"
16:21:47.768: [API.4] App instance exited with guid 3df28cf5-8faf-40ef-a4e7-4e9658df9926 payload: {"instance"=>"9059dfda-9fec-4c82-4a11-1ab1", "index"=>0, "reason"=>"CRASHED", "exit_description"=>"APP/PROC/WEB: Exited with status 127", "crash_count"=>1, "crash_timestamp"=>1562358172401034750, "version"=>"7e7a157a-d48a-47fc-863b-80193bad0461"}
16:21:49.934: [API.1] Process has crashed with type: "web"
16:21:49.956: [API.1] App instance exited with guid 3df28cf5-8faf-40ef-a4e7-4e9658df9926 payload: {"instance"=>"7f4ddf22-07d6-4f3f-62c1-ca68", "index"=>0, "reason"=>"CRASHED", "exit_description"=>"APP/PROC/WEB: Exited with status 127", "crash_count"=>3, "crash_timestamp"=>1562358179064113054, "version"=>"7e7a157a-d48a-47fc-863b-80193bad0461"}
16:22:46.283: [CELL.0] Cell 14d1eaac-45f2-4f93-9995-d8d80b86693d creating container for instance 60e81bb4-79cd-4a42-6101-359c
16:22:47.099: [CELL.0] Cell 14d1eaac-45f2-4f93-9995-d8d80b86693d successfully created container for instance 60e81bb4-79cd-4a42-6101-359c
16:22:48.304: [CELL.0] Starting health monitoring of container
16:22:48.821: [APP/PROC/WEB.0] bash: npm: command not found
16:22:48.858: [APP/PROC/WEB.0] Exit status 127
16:22:48.864: [CELL/SSHD.0] Exit status 0
16:22:49.421: [CELL.0] Cell 14d1eaac-45f2-4f93-9995-d8d80b86693d stopping instance 60e81bb4-79cd-4a42-6101-359c
16:22:49.421: [CELL.0] Cell 14d1eaac-45f2-4f93-9995-d8d80b86693d destroying container for instance 60e81bb4-79cd-4a42-6101-359c

Я ожидаю, что статические файлы должны быть обслужены, но я не понимаю, зачем нужен NPM. Я не понимаю, почему NPM вызывается из папки сборки статических файлов с использованием пакета компоновки Staticfile.

1 Ответ

0 голосов
/ 09 июля 2019

Благодаря Даниэлю Микусе, который был выше, я смог решить эту проблему. Первоначально я развернул в этой специально названной службе в Cloud Foundry как проект Node с пакетом сборки Node, прежде чем изменить свой рабочий процесс для использования пакета компоновки Staticfile в том же контейнере. Я полагаю, что произошло, поскольку сборочный пакет Node устанавливает команду запуска, он остается кэшированным в контейнере, и поскольку сборочный пакет Staticfile не переопределяет его, он остается. Даже когда я удалил и развернул в той же службе имен, команда запуска сохранилась. Я сделал именно то, что сказал Дэниел (недавно названный сервис, изменив мой манифест на использование просто -staticfile_buildpack вместо любой git-ссылки) и у меня не возникло проблем.

...