【发布时间】:2017-11-27 17:31:54
【问题描述】:
我在 GitHub 上有 2 个私有存储库,用于 2 个不同的网站。两个网站都在 Amazon (EC2) 上运行同一组自动扩展服务器。我使用 CodeDeploy 从 GitHub 中提取存储库并将它们部署到服务器,一次一个。这几乎可以完美运行。
问题是当我部署一个网站时,来自另一个网站的文件被完全删除。不是文件夹结构,只是文件。
一个网站部署到 /var/www/website1 而另一个部署到 /var/www/website2 。 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
当我部署“website1”时,它会删除“website2”中的所有文件,反之亦然。我不知道为什么。任何帮助将不胜感激。
在安装应用程序之前(网站 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 之前(网站 2)
#/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
【问题讨论】:
-
能否请您再次进行部署并打印您的部署日志?不包括代理日志,但部署脚本日志:docs.aws.amazon.com/codedeploy/latest/userguide/…
-
能否同时发布
beforeinstall.sh和afterinstall.sh两个网站的内容? -
我在使用 Windows Server、IIS 和 .NET 应用程序时遇到了完全相同的问题。我没有
beforeinstall或afterinstall如果我只是多次部署 1 个应用程序,它可以完美运行。 -
@AnkitSharma 是的,我已经添加了它们。
标签: aws-code-deploy