2015-10-23 15 views
10

Sto tentando di eseguire lo script AfterInstall nella distribuzione del codice AWS, ma viene eseguito da/opt/codedeploy-agent/dir anziché dalla directory dell'app.AWS CodeDeploy Lo script AfterInstall viene eseguito dalla dir agent di distribuzione del codice

Questo è il modo appspec.yml di file assomiglia:

version: 0.0 

os: linux 

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

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

Come si può vedere si tratta di un esempio di base.

Ora, lo script bash è simile al seguente:

#!/bin/bash 
npm install 

Voglio solo NPM installare e il gioco è fatto.

Purtroppo sto ottenendo l'errore:

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 

Cercavo diverse configurazioni appspec.yml come l'aggiunta o l'aggiunta runas "/" all'inizio del percorso di posizione. Continua a cercare di eseguire da/opt/codedeoploy-agent/directory.

In preda alla disperazione, ho impostato percorso assoluto dello script, ma poi mi sono:

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

E 'davvero fastidioso come sto facendo tutto secondo le docs, ma probabilmente mi manca qualcosa di molto molto piccolo !

Grazie

risposta

20

Ok,

Così ho scoperto, che codedeoloy-agent è in esecuzione AfterInstall (e probabilmente tutti gli altri passaggi) dalla directory temporanea creata da l'agente distribuire esempio, in modo nel mio caso ho dovuto modificare lo script bash inserendo cd nella directory corretta:

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

Dove l'hai trovato? – artburkart

+2

Non ricordo se l'ho concluso da qui: http://docs.aws.amazon.com/codedeploy/latest/userguide/app-spec-ref.html#app-spec-ref-hooks - forse c'è una frase che suggerisce che - mi ricordo che mi ci è voluto un po '- o più probabilmente per prove ed errori, o una combinazione di entrambi :) – matewilk

+0

@matewilk - super utile! – Ben

Problemi correlati