Я пытаюсь запустить AfterInstall script в развертывании кода AWS, но он запускается из /opt/codedeploy -agent/dir вместо моего каталога приложений.
Вот как выглядит файл apppec.yml:
version: 0.0
os: linux
files:
- source: /
destination: /tmp/epub
hooks:
AfterInstall:
- location: server/install-packages.sh
runas: root
Как вы можете видеть, это базовый пример.
Теперь bash script выглядит следующим образом:
#!/bin/bash
npm install
Я просто хочу установить npm и что он.
К сожалению, я получаю сообщение об ошибке:
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
Я пытался использовать различные конфигурации appspec.yml, такие как добавление runas или добавление "/" в начале пути к местоположению. Все время он пытается запустить из /opt/codedeoploy -agent/directory.
В отчаянии я установил абсолютный путь к script, но потом получил:
Script does not exist at specified location: /tmp/epub/server/install-packages.sh
Это действительно раздражает, поскольку я делаю все согласно документам, но, вероятно, мне не хватает чего-то очень маленького!
Спасибо