AWS CodeDeploy AfterInstall脚本正在从代码部署代理目录运行
我试图在AWS代码部署中运行AfterInstall脚本,但是它正在从/ opt / codedeploy-agent / dir而不是我的app目录运行。
这是appspec.yml文件的样子:
version: 0.0 os: linux files: - source: / destination: /tmp/epub hooks: AfterInstall: - location: server/install-packages.sh runas: root
你可以看到这是一个基本的例子。
现在,bash脚本如下所示:
#!/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.ymlconfiguration,如添加runas或在位置path的开头添加“/”。 一直试图从/ opt / codedeoploy-agent /目录运行。
无奈之下,我已经设定了脚本的绝对path,但是我得到了:
Script does not exist at specified location: /tmp/epub/server/install-packages.sh
这真的很烦人,因为我根据文档做所有事情,但可能我错过了非常非常小的东西!
谢谢
好,
所以我发现codedeoloy-agent在deploy实例上的代理创build的临时目录中运行AfterInstall(可能是所有其他的步骤),所以在我的情况下,我不得不通过cd-ing来修改bash脚本正确的目录:
#!/bin/bash cd /tmp/epub/server/ npm install
- 如何使用AWS Cognito SDK使用NodeJS从REST服务authentication用户?
- 使用NodeJS将多个file upload到AWS S3
- AWS弹性beanstalk ec2服务器上的node.js命令
- 你如何unit testing一个NodeJs的Lambda函数写入/读取dynamodb,并通过AWS API网关端点调用?
- 使用Node和Node-gyp的AWS Lambda上的奇怪“内存”行为
- TCPconfiguration的Amazon Elastic Load Balancer上的Socket.io Websockets
- 如何在Node中将图片上传到s3
- 自定义exception名称而不是UserLambdaValidationException
- 亚马逊Alexa技能Lambda代码将不会执行