AWS CodeDeploy:在 Appspec.yml 中移动超过 1 个文件夹深度的文件
AWS CodeDeploy: In Appspec.yml Move Files That Are More Than 1 Folder Deep
在我的 appspec.yml 文件中,我需要部署超过一层的文件。以下示例将仅获取 views 文件夹中的文件,但在 views 文件夹中还有其他 folders/files 我需要的文件。
version: 0.0
os: linux
files:
- source: /views
destination: /var/www/views
这再次为我提供了 /views 中的所有文件,但我需要 /views 文件夹中的文件夹。
我试过在文件夹视图后添加另一个条目,但这不起作用。它会给出错误 "No such file or directory".
解决方法:将应用程序文件夹压缩到源构建中,然后在部署时解压缩。
buildspec.yml
version: 0.2
phases:
post_build:
commands:
- echo Entered the post_build phase...
- zip -r site.zip ./*
- echo Build completed on `date`
artifacts:
files:
- appspec.yml
- site.zip
- DeployScripts/*
appspec.yml
version: 0.0
os: linux
files:
- source: site.zip
destination: /var/www/ecommercepricing
hooks:
AfterInstall:
- location: DeployScripts/UnzipSite.sh
timeout: 400
DeployScripts/UnzipSite.sh
#!/bin/bash
echo Starting unzip
apt-get install -y unzip
unzip -o /var/www/ecommercepricing/site -d /var/www/ecommercepricing
echo Finishing unzip
在我的 appspec.yml 文件中,我需要部署超过一层的文件。以下示例将仅获取 views 文件夹中的文件,但在 views 文件夹中还有其他 folders/files 我需要的文件。
version: 0.0
os: linux
files:
- source: /views
destination: /var/www/views
这再次为我提供了 /views 中的所有文件,但我需要 /views 文件夹中的文件夹。
我试过在文件夹视图后添加另一个条目,但这不起作用。它会给出错误 "No such file or directory".
解决方法:将应用程序文件夹压缩到源构建中,然后在部署时解压缩。
buildspec.yml
version: 0.2
phases:
post_build:
commands:
- echo Entered the post_build phase...
- zip -r site.zip ./*
- echo Build completed on `date`
artifacts:
files:
- appspec.yml
- site.zip
- DeployScripts/*
appspec.yml
version: 0.0
os: linux
files:
- source: site.zip
destination: /var/www/ecommercepricing
hooks:
AfterInstall:
- location: DeployScripts/UnzipSite.sh
timeout: 400
DeployScripts/UnzipSite.sh
#!/bin/bash
echo Starting unzip
apt-get install -y unzip
unzip -o /var/www/ecommercepricing/site -d /var/www/ecommercepricing
echo Finishing unzip