我在github上有2个私人存储库,用于两个不同的网站。这两个网站都从亚马逊(EC2)上的同一组自动尺度服务器中运行。我使用CodeDeploy将存储库从Github提取,并将其部署到服务器中,一次。这几乎可以很好地工作。
问题是,当我部署一个网站时,完全删除了另一个网站的文件。不是文件夹结构,而只是文件。
一个网络地点部署到/var/www/weblit1时,另一个网站将其部署到/var/www/werfect2。AppSpec文件是:
version: 0.0
os: linux
files:
- source: /
destination: /var/www/website1/
hooks:
BeforeInstall:
- location: /beforeinstall.sh
timeout: 300
runas: root
AfterInstall:
- location: /afterinstall.sh
timeout: 300
runas: root
和
version: 0.0
os: linux
files:
- source: /
destination: /var/www/website2/
hooks:
BeforeInstall:
- location: /beforeinstall.sh
timeout: 300
runas: root
AfterInstall:
- location: /afterinstall.sh
timeout: 300
runas: root
当我部署"网站1"时,它会删除"网站2"中的所有文件,反之亦然。我不知道为什么。任何帮助将不胜感激。
在安装应用程序(网站1)
之前#/bin/bash
sudo service php-fpm stop
sudo service nginx stop
sudo yum -y update
rm /var/www/app -Rf
rm /usr/share/nginx/html/status.php -Rf
安装后
#/bin/bash
chown app:app /var/www/app/* -Rc
#
find /var/www/app/public_html/files/uploads -type d -exec chmod 777 {} ;
#
cd '/var/www/app'
su app -c 'composer update'
mv /var/www/fairwarning_app/status.php /usr/share/nginx/html/status.php
#
sudo service php-fpm start
sudo service nginx start
安装API(werebl2)
#/bin/bash
sudo service php-fpm stop
sudo service nginx stop
sudo yum -y update
rm /var/www/api -Rf
安装后
#/bin/bash
chown api:api /var/www/api/* -Rc
#
cd $'/var/www/api'
su api -c 'composer install'
su api -c 'composer update'
#
sudo service php-fpm start
sudo service nginx start
看起来AWS CodeDeploy不支持同一部署组的同时部署。您可以在其GitHub问题跟踪器上跟踪问题的进度和讨论。