5

Aktualnie pracuję nad aplikacją node.js wdrożoną na Elastic Beanstalk. Zaczęło się odwoływać do modułu prywatnego, który jest hostowany na github jako prywatne repozytorium. Lokalnie, jeśli umieściłem odniesienie do niego w sekcji zależności w moim package.json jak poniżej działa dobrze. Mogę uruchomić instalację nom, pobiera moduł i aplikacja działa bez problemu.Jaki jest zalecany sposób postępowania z zależnościami modułu prywatnego node.js?

"ModuleName": "git+https://TOKEN:[email protected]/OWNER/REPO_NAME.git" 

Jednak gdy próbuję wdrożyć do beanstalk nie powiedzie się z powodu następującego błędu:

2014-04-04 00:14:09,188 [DEBUG] (1630 MainThread) [commandWrapper.py-60] [root commandWrapper main] Command result: {'status': 'FAILURE', 'results': [{'status': 'FAILURE', 'config_sets': ['Infra-EmbeddedPreBuild', 'Hook-PreAppDeploy', 'Infra-EmbeddedPostBuild'], 'returncode': 1, 'events': [{'msg': 'Failed to run npm install. Snapshot logs for more details.', 'timestamp': 1396570449, 'severity': 'ERROR'}, {'msg': 'Failed to run npm install. npm http GET https://registry.npmjs.org/express\nnpm ERR! not found: git\nnpm ERR! \nnpm ERR! Failed using git.\nnpm ERR! This is most likely not a problem with npm itself.\nnpm ERR! Please check if you have git installed and in your PATH.\n\nnpm ERR! System Linux 3.4.73-64.112.amzn1.x86_64\nnpm ERR! command "/opt/elasticbeanstalk/node-install/node-v0.10.26-linux-x64/bin/node" "/opt/elasticbeanstalk/node-install/node-v0.10.26-linux-x64/bin/npm" "install"\nnpm ERR! cwd /tmp/deployment/appli', 'timestamp': 1396570449, 'severity': 'ERROR'}], 'msg': 'Error occurred during build: Command hooks failed\n'}], 'api_version': '1.0'} 

Z tego co mogę powiedzieć, czytając, że wydaje się, że git nie jest zainstalowany w domyślnej linux AMI używa Beanstalk. Moje pytanie brzmi, jaki jest najlepszy sposób, aby sobie z tym poradzić. Obecnie rozważam następujące dwie opcje:

  1. Albo użyj AMI, który ma zainstalowany git, albo wymusić instalację w jakiś sposób podczas rozruchu.
  2. Utwórz proces kompilacji, który pakuje wszystkie moje node_modules przed wdrożeniem do Beanstalk.

Czy te dwie opcje mają sens, czy powinienem rozważyć inną opcję? Czy istnieje zalecany sposób radzenia sobie z tym za pomocą Elastic Beanstalk lub ogólnie w ekosystemie węzła?

+0

Wybrałbym opcję (2) –

+0

Nie wiem, czy Elastic Beanstalk nie ma zainstalowanego git. Domyślam się, że problemem jest zezwolenie na dostęp do prywatnego repozytorium. Spróbuj przeczytać [http://stackoverflow.com/questions/13476138/setting-up-private-github-access-with-aws-elastic-beanstalk-and-ruby-container](http://stackoverflow.com/ pytania/13476138/ustawienie-prywatny-github-dostęp-z-aws-sprężystych-beanstalk-i-ruby-kontener) – Scoup

Odpowiedz

Powiązane problemy