如何解决CodeDeploy 卡在 Install 或 AfterInstall 上
我使用相同的 appspec 文件对 6 个不同的部署进行了 codedeploy 设置。虽然 codedeploy 对某些部署非常有效,但在其他部署上却卡住了。
问题是,它会随机卡在随机环境中,有时在安装阶段,有时在 AfterInstall 阶段。它还会卡在同一部署中的多台服务器之一上。
appspec.yml
version: 0.0
os: linux
files:
- source: /
destination: /var/www/html/current
permissions:
- object: /var/www/html/current
pattern: "**"
owner: root
group: www-data
mode: 644
type:
- file
- object: /var/www/html/current
pattern: "**"
owner: root
group: www-data
mode: 755
type:
- directory
hooks:
BeforeInstall:
- location: scripts/beforeinstall.sh
runas: root
AfterInstall:
- location: scripts/afterinstall.sh
runas: root
beforeinstall.sh
#!/bin/bash
php artisan cache:clear
hostname >> /tmp/bhostname.txt
crontab -r
if [ "$HOSTNAME" = horizon ]
then
hostname >> /tmp/ahostname.txt
cd /var/www/html/current/backend && sudo php artisan down
sudo supervisorctl stop laravel-worker:*
sleep 30
sudo service supervisor stop
sleep 30
rm -rf /var/www/html/current/backend/bootstrap/*
rm -rf /var/www/html/current/backend/storage/*
rm -rf /var/www/html/current/backend/worker.log
else
cd /var/www/html/current/backend && sudo php artisan down
rm -rf /var/www/html/current/backend/bootstrap/*
rm -rf /var/www/html/current/backend/storage/*
fi
afterinstall.sh
#!/bin/bash
chown -R www-data:www-data /var/www/html/current/backend/bootstrap
chown -R www-data:www-data /var/www/html/current/backend/storage
cd /var/www/html/current/backend && sudo php artisan cache:clear
cd /var/www/html/current/backend && sudo php artisan view:clear
cd /var/www/html/current/backend && sudo php artisan config:cache
export GOOGLE_APPLICATION_CREDENTIALS=/var/www/html/current/backend/storage/gcp_translate.json
# (crontab -l 2>/dev/null; echo "*/2 * * * * cd /var/www/html/current/backend/ && php artisan schedule:run >> /dev/null 2>&1")| crontab -
echo "*/2 * * * * cd /var/www/html/current/backend/ && php artisan schedule:run >> /dev/null 2>&1" > /var/spool/cron/crontabs/www-data
echo "* * * * * /bin/chown -R www-data.www-data /var/www/html/current/backend/storage/logs" > /var/spool/cron/crontabs/root
echo "0 0 * * * rm -rf /opt/codedeploy-agent/deployment-root" > /var/spool/cron/crontabs/root
chmod 600 /var/spool/cron/crontabs/www-data
chmod 600 /var/spool/cron/crontabs/root
service cron restart
if [ "$HOSTNAME" = horizon ]
then
cd /var/www/html/current/backend && php artisan up
cd /var/www/html/current/ && pwd && ls -altr && mv laravel-worker.conf /etc/supervisor/conf.d
sudo service supervisor restart
sleep 30
sudo supervisorctl restart laravel-worker:*
fi
service php7.4-fpm restart
service nginx restart
解决方法
该问题已通过减少构建大小得到解决。
打包为 .zip 文件后,构建版本过去大约为 900 MB。将其缩减至 600 MB 后,AWS CodeDeploy 不会随机卡住。
通过从前端删除 node_modules(1.7 GB 未压缩)来修剪构建。
因此,我得出的结论是服务器 (t3.medium) 的大小与高度压缩的较大版本有关。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。