我正試圖在AWS Elastic Beanstalk上部署應用程序。我有以下文件中.ebextensions
:在彈性beanstalk的container_commands中執行命令時沒有路徑
commands:
01-install-git:
command: "yum install -y git &>> /tmp/deploy.log"
02-install-nodejs-npm:
command: "yum install -y --enablerepo=epel nodejs npm &>> /tmp/deploy.log"
03-install-grunt:
command: "npm install -g grunt-cli &>> /tmp/deploy.log"
04-install-coffee:
command: "npm install -g coffee-script &>> /tmp/deploy.log"
05-install-bower:
command: "npm install -g bower &>> /tmp/deploy.log"
container_commands:
01_grunt:
command: "export PATH=/usr/local/bin:/bin:/usr/bin; grunt prod &>> /tmp/deploy.log"
基本上,我想運行grunt prod
,並且將下載的涼亭依賴,編譯CoffeeScript的我,縮小/ CONCAT我的JS和一些其他的東西。 git,nodejs,grunt,coffee和bower安裝工作正常(我可以ssh並確認命令可用並在路徑中)。但是,如果調用涼亭時,我不包括export PATH=/usr/local/bin:/bin:/usr/bin;
部分,我得到:
Running "bower:install" (bower) task
Fatal error: git is not installed or not in the PATH
我試圖調試,並添加which git &>> /tmp/deploy.log
但得到which: no git in ((null))
。但是,如果我做echo $PATH &>> /tmp/deploy.log
我得到一個好看的路徑:/usr/local/bin:/bin:/usr/bin
問題是:爲什麼我需要指定路徑時調用鮑爾?
語法'命令:PATH = $ PATH grunt prod&>>/tmp/deploy.log'也可以工作,因爲變量定義命令也允許在用導出的變量設置變量之後運行命令。如果你已經有了一個多行命令,你將需要'export PATH = $ PATH; ...語法。 –