我无法为我的 node.js 项目运行 appspec.yml 文件中提到的脚本。也为 runas 用户提供了执行权限。此外,将 runas 更改为 ec2-user 也无济于事,因为脚本仅以 root 用户运行。Codedeploy 能够在我的 ec2 服务器上的指定位置部署工件而不会出现任何错误。有人可以帮我解决这个问题。(之后想用 Beanstalk 试试,但这也需要 appspec.yml 文件才能工作!!)
appspec.yml 文件
version: 0.0
os: linux
files:
- source: /
destination: /opt/dev
permissions:
- object: /opt/dev/scripts/UnzipResourceBundle.sh
mode: 777
owner: root
type:
- file
hooks:
AfterInstall:
- location: scripts/UnzipResourceBundle.sh
timeout: 1800
runas: root
UnzipResourceBundle 文件位置和权限(在 codedeploy 代理部署文件夹中):
/opt/codedeploy-agent/deployment-root/7f8a2414-b048-4468-a3f5-74efa04371c7/d-
G7FCROQS2/deployment-archive/scripts/UnzipResourceBundle.sh
-rwxr-xr-x 1 root root 532 Feb 27 08:07 UnzipResourceBundle.sh
解压缩ResourceBundle.sh 文件:
shebang : #!/bin/bash
script runs the forever service and migrates db scripts.