Php CodeDeploy在安装时或安装后卡住
我使用相同的appspec文件为6种不同的部署设置了codedeploy。虽然codedeploy在某些部署中工作得很好,但在其他部署中却会卡住 问题是,它在随机环境中会被卡住,有时在安装阶段,有时在后安装阶段。它还卡在同一部署中的多个服务器之一上 appspec.ymlPhp CodeDeploy在安装时或安装后卡住,php,laravel,amazon-web-services,aws-code-deploy,Php,Laravel,Amazon Web Services,Aws Code Deploy,我使用相同的appspec文件为6种不同的部署设置了codedeploy。虽然codedeploy在某些部署中工作得很好,但在其他部署中却会卡住 问题是,它在随机环境中会被卡住,有时在安装阶段,有时在后安装阶段。它还卡在同一部署中的多个服务器之一上 appspec.yml version: 0.0 os: linux files: - source: / destination: /var/www/html/current permissions: - object: /v
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
安装前。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
#!/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
afterinstall.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
#!/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不会被随机卡住 通过从前端删除节点_模块(1.7GB,无压缩)来修剪构建
因此,我的结论是,对于高度压缩的较大版本,服务器(t3.medium)的大小不足。您是否尝试登录到实例并手动运行脚本?这可能会提供一些额外的信息失败的原因是什么?如果出现“卡住”的情况,您是否也可以提供错误消息?在一小时后停止2个卡住的部署并重新启动后传递。似乎是AWS方面的问题,但我只有基本的支持计划。您可以在控制台中检查AWS运行状况,看看是否有关于CD问题的通知?@Marcin,谢谢,这是一个很好的指针。不幸的是,我没有看到任何通知,但我确实找到了反馈窗口,并已将问题报告给AWS。