我正在使用codedeploy将我的应用程序部署到由自动缩放组创建的EC2实例。
应用程序部署罚款并移至其正确的文件映射位置,但是我的AfterInstallation
脚本从未执行。我可以在日志中看到它试图使脚本可执行并通过该阶段,但永远不会被执行。
这是我的appspec.yml
version: 0.0
os: linux
files:
- source: /
destination: /opt/lobby
hooks:
AfterInstall:
- location: bootstrap.sh
timeout: 30
runas: root
这是脚本
#!/bin/bash
nohup nodejs lobby.js &
echo "finished"
我看不到打印的回声,也没有看到与lobby.js相关的任何过程。我可以通过在部署后键入./bootstrap.sh来验证该脚本是否有效,这可以正常工作。这个钩子应该为我做这个。
这需要是背景任务,因为我将在此脚本中运行多个应用程序,但是现在只显示一个应用程序才能使其正常工作。
编辑:
我已转介http://docs.aws.amazon.com/codedeploy/latest/userguide/reference-pappspec-file-structure-structure-hooks.html#appspecepspec-hooks-hooks-server,并尝试通过验证和验证后的后安装和验证后的后置和afterallyallafficate和afterallyAllyAllowTrafficeTICe和afterallowtraffice。(但我不使用LoadBalancer)
问题
为什么我的安装脚本未被调用,或者是这样?
afterinstall:安装后脚本包含在安装应用程序后需要执行任务。
插入脚本的示例:
#!/bin/bash
cd /home/ubuntu/production/weone-backend
sudo chown -R ubuntu:ubuntu /home/ubuntu/production
sudo NODE_ENV=production nohup nodejs app.js > /dev/null 2> /dev/null < /dev/null &
在上面的脚本中,我们正在更改应用程序文件夹的所有权&amp;启动申请过程。
注意:使用" /dev/null 2> /dev/null < /dev/null &
"自动从Nohup Shell中脱颖而出,否则您的codedeploy会陷入afterinstall事件。
https://www.oodlestechnologies.com/blogs/aws-codedeploy