2015-10-23 16 views
10

'dan çalıştırılıyor AWS kodu dağıtımı sırasında AfterInstall komut dosyasını çalıştırmaya çalışıyorum, ancak uygulama dizinim yerine/opt/codedeploy-agent/dir dizininden çalıştırılıyor.AWS CodeDeploy AfterInstall komut dosyası, kod dağıtım aracısı dir

appspec.yml dosya nasıl göründüğünü budur: Eğer bu temel örnek görebileceğiniz gibi

version: 0.0 

os: linux 

files: 
    - source:/
    destination: /tmp/epub 

hooks: 
    AfterInstall: 
    - location: server/install-packages.sh 
     runas: root 

.

#!/bin/bash 
npm install 

Sadece yüklemek NPM istiyorum ve bu kadar:

Şimdi, bash script şöyle.

LifecycleEvent - AfterInstall 
Script - server/install-packages.sh 
[stderr]npm ERR! install Couldn't read dependencies 
[stderr]npm ERR! Linux 3.13.0-48-generic 
[stderr]npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "install" 
[stderr]npm ERR! node v4.2.1 
[stderr]npm ERR! npm v2.14.7 
[stderr]npm ERR! path /opt/codedeploy-agent/package.json 
[stderr]npm ERR! code ENOPACKAGEJSON 
[stderr]npm ERR! errno -2 
[stderr]npm ERR! syscall open 
[stderr] 
[stderr]npm ERR! package.json ENOENT: no such file or directory, open '/opt/codedeploy-agent/package.json' 
[stderr]npm ERR! package.json This is most likely not a problem with npm itself. 
[stderr]npm ERR! package.json npm can't find a package.json file in your current directory. 
[stderr] 
[stderr]npm ERR! Please include the following file with any support request: 
[stderr]npm ERR!  /opt/codedeploy-agent/npm-debug.log 

Ben runas ekleyerek veya "/" konum yolun başında ekleme gibi farklı appspec.yml yapılandırmaları çalışıyordu:

Ne yazık ki hatayı alıyorum. Her zaman/opt/codedeoploy-agent/dizininden çalıştırmaya çalışıyor.

çaresizlik, ben senaryo mutlak yolunu kurdum, ama sonra aldım:

Script does not exist at specified location: /tmp/epub/server/install-packages.sh 

Ben docs göre her şeyi yapıyorum olarak gerçekten sinir bozucu, ama muhtemelen bir şey çok özlüyorum çok küçük ! Bu yüzden dışarı buldum

Teşekkür

cevap

20

Ok,

, o codedeoloy-ajan yüzden örneğini dağıtmak üzerinde ajan tarafından oluşturulan geçici dizinden AfterInstall (ve muhtemelen diğer bütün adımlar) çalıştıran Benim durumumda bash komut dosyasını uygun dizine cd-ing ile değiştirmek zorunda kaldım:

#!/bin/bash 
cd /tmp/epub/server/ 
npm install 
+0

Bunu nereden buldunuz? – artburkart

+2

Buradan çıkarıp çıkarmadığımı hatırlamıyorum: http://docs.aws.amazon.com/codedeploy/latest/userguide/app-spec-ref.html#app-spec-ref-hooks - belki var bir cümle bunu önerdi - hatırlıyorum beni bir süre aldı - ya da daha büyük olasılıkla denemeler ve hatalar, ya da her ikisinin kombinasyonu :) – matewilk

+0

@ matewilk - süper yararlı! – Ben

İlgili konular