我收到部署到Elastic Beanstalk的错误,因为实例上没有git。我的package.json中的一个依赖项依赖于git存储库,需要git clone
。
实例上没有安装Git。我尝试通过yum
部署时通过.ebextensions .conf文件安装它,但是当我进入实例时它不存在。
问题是:在该实例上调用npm install
之前,在Elastic Beanstalk上运行的Linux实例上安装和使用git的正确方法是什么?
这是显示错误的日志:
[2015-04-18T09:00:02.815Z] ERROR [1777] : Command execution failed: Activity failed. (ElasticBeanstalk::ActivityFatalError)
caused by: + /opt/elasticbeanstalk/containerfiles/ebnode.py --action npm-install
npm WARN package.json amity-api-v2@2.0.0 No repository field.
npm WARN package.json amity-api-v2@2.0.0 No README data
npm WARN `git config --get remote.origin.url` returned wrong result (https://github.com/awslabs/dynamodb-document-js-sdk) undefined
npm WARN `git config --get remote.origin.url` returned wrong result (https://github.com/awslabs/dynamodb-document-js-sdk) undefined
npm ERR! git clone https://github.com/awslabs/dynamodb-document-js-sdk undefined
npm ERR! git clone https://github.com/awslabs/dynamodb-document-js-sdk undefined
npm ERR! Linux 3.14.35-28.38.amzn1.x86_64
npm ERR! argv "/opt/elasticbeanstalk/node-install/node-v0.12.0-linux-x64/bin/node" "/opt/elasticbeanstalk/node-install/node-v0.12.0-linux-x64/bin/npm" "--production" "install"
npm ERR! node v0.12.0
npm ERR! npm v2.5.1
npm ERR! code ENOGIT
npm ERR! not found: git
npm ERR!
npm ERR! Failed using git.
npm ERR! This is most likely not a problem with npm itself.
npm ERR! Please check if you have git installed and in your PATH.
答案 0 :(得分:9)
如果您将配置文件放在.ebextensions文件夹中,如下所示:
packages:
yum:
git: []
确保git包位于具有更高执行索引的配置文件中,然后实际需要git。通常将它放在名为00-packages.config
的第一个配置文件中。
答案 1 :(得分:2)
在git
运行之前,我可以想到三种方法可以确保在系统上安装npm install
(或任何依赖项)。
preinstall
中定义package.json
脚本,根据需要安装git
。/opt/ebextensions/hooks/preinit/99_install_git.sh
,或者如果您希望在预应用程序/opt/ebextensions/hooks/appdeploy/pre/99_install_git.sh
中进行操作,并使用mode
字段使文件可执行。对于您的用例,我认为#3是最佳选择。有点晚了,但我希望你觉得它很有用