2016-03-14 5 views
1

любящий MeteorJS до сих пор. Возможно, те, кто развернулся к ЭБ, могут мне помочь.Метеорологическое развертывание не работает на ElasticBeanstalk

Я смог успешно развертывать свое приложение для EB, однако последующие развертывания не работают. Во время фазы установки npm я получаю сообщение об ошибке, подобное этому

gyp ERR! node -v v0.10.42 
    gyp ERR! node-gyp -v v1.0.1 
    gyp ERR! not ok 

    npm ERR! [email protected] install: `node-gyp rebuild` 
    npm ERR! Exit status 1 
    npm ERR! 
    npm ERR! Failed at the [email protected] install script. 
    npm ERR! This is most likely a problem with the bcrypt package, 
    npm ERR! not with npm itself. 
    npm ERR! Tell the author that this fails on your system: 
    npm ERR!  node-gyp rebuild 
    npm ERR! You can get their info via: 
    npm ERR!  npm owner ls bcrypt 
    npm ERR! There is likely additional logging output above. 
    npm ERR! System Linux 4.1.17-22.30.amzn1.x86_64 
    npm ERR! command "/opt/elasticbeanstalk/node-install/node-v0.10.42-linux-x64/bin/node" "/opt/elasticbeanstalk/node-install/node-v0.10.42-linux-x64/bin/npm" "--production" "rebuild" 
    npm ERR! cwd /tmp/deployment/application 
    npm ERR! node -v v0.10.42 
    npm ERR! npm -v 1.4.29 
    npm ERR! code ELIFECYCLE 
    npm ERR! 
    npm ERR! Additional logging details can be found in: 
    npm ERR!  /tmp/deployment/application/npm-debug.log 
    npm ERR! not ok code 0 
    Running npm install: /opt/elasticbeanstalk/node-install/node-v0.10.42-linux-x64/bin/npm 
    Setting npm config jobs to 1 

Я использую железную CLI для создания своего приложения. Сценарий я использую для развертывания выглядит как это:

rm -Rf build/bundle 

iron build --server=https://my-domain.com --architecture os.linux.x86_64 

eb deploy prod 

package.json в корне проекта выглядит следующим образом:

{ 
    "name": "trail-status", 
    "version": "2.0.0", 
    "scripts": { 
    "start": "node build/bundle/main.js" 
    }, 
    "dependencies": { 
    "fibers": "1.0.1", 
    "underscore": "*", 
    "source-map-support": "*", 
    "semver": "*", 
    "bcrypt": "*" 
    } 
} 

Я попытался удалить построить/комплект/programs/server/npm/npm-bcrypt/node_modules/bcrypt без большой удачи. Также попробовали удалить bcrypt из package.json.

+0

Я не уверен, что железо сборки происходит в фоновом режиме, но вы бежите НПМ устанавливается на той же инфраструктуре + узловыми версий? – Clarkie

ответ

0

Я нашел решение этого, используя demeteorizer для создания моего проекта. Вот мой сценарий, который очень хорошо работает для развертываний.

rm -Rf elasticbeanstalk 
rm -Rf build.zip 

cd app 

demeteorizer -a os.linux.x86_64 -o ../elasticbeanstalk 

cd .. 

zip -r build.zip elasticbeanstalk .ebextensions/ .elasticbeanstalk/ config/production 
rm -Rf elasticbeanstalk 

eb deploy production 

rm -Rf build.zip 

Тогда в .ebextensions/configuration.config

files: 
    "/opt/elasticbeanstalk/hooks/appdeploy/pre/51install_meteor.sh" : 
    mode: "000755" 
    user: root 
    group: root 
    encoding: plain 
    content: | 
     #!/usr/bin/env bash 
     echo !!! Setting up METEOR dependencies 
     export PATH=$PATH:/usr/local/bin 
     echo !!! Set PATH: $PATH 
     ln -s /opt/elasticbeanstalk/node-install/node-v0.10.42-linux-x64/bin/node /usr/local/bin/node 
     ln -s /opt/elasticbeanstalk/node-install/node-v0.10.42-linux-x64/bin/npm /usr/local/bin/npm 
     export HOME=/home/ec2-user 
     echo !!! Creating app bundle 
     cd /tmp/deployment/application/elasticbeanstalk/bundle/programs/server 
     npm install 
     cd /usr/local/bin 
     rm npm node 
0

У меня возникла проблема. Проверьте это discussion.

Решение может быть не только одним. Некоторые решения йо можно попробовать:

update gcc

# reinstall npm 
npm install -g npm 

# specify gcc 
CC=/opt/local/bin/gcc CXX=/opt/local/bin/gcc npm install bcrypt 

# add to package.json 
"scripts": { 
    "preinstall": "npm i -g node-gyp && node-gyp clean" 
} 

Это связано с серверной среды. Вы можете войти в свой экземпляр EB для получения дополнительной информации (вы можете увидеть его в консоли EC2).

Смежные вопросы