CodeDeploy 卡在 Install 或 AfterInstall 上

CodeDeploy gets stuck on Install or AfterInstall

我为 6 个不同的部署设置了具有相同 appspec 文件的代码部署。虽然 codedeploy 对于某些部署来说工作得很好,但它会卡在其他部署上。

问题是,它随机地卡在随机环境中,有时在安装阶段,有时在安装后阶段。它还会卡在同一部署中的多个服务器之一上。

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) 对于高度压缩的较大构建。