【问题标题】:AWS CodeDeploy: In Appspec.yml Move Files That Are More Than 1 Folder DeepAWS CodeDeploy:在 Appspec.yml 中移动超过 1 个文件夹深度的文件
【发布时间】:2020-01-05 02:22:08
【问题描述】:

在我的 appspec.yml 文件中,我需要部署超过一层深度的文件。以下示例将仅获取视图文件夹中的文件,但在视图文件夹中还有我需要的其他文件夹/文件。

version: 0.0
os: linux
files:
  - source: /views
    destination: /var/www/views

这再次给了我 /views 中的所有文件,但我需要 /views 文件夹中的文件夹。

我尝试在文件夹视图之后添加另一个条目,但这不起作用。它会给出错误“没有这样的文件或目录”。

【问题讨论】:

  • 我一直在努力解决问题。在构建规范中,我压缩文件夹并将该压缩文件带入 appspec。在 appspec 中,我使用 AfterInstall 挂钩解压缩。某些原因此解压缩不起作用?如果我在 EC2 实例中手动运行该命令,它就可以工作。其他钩子 sh 脚本可以工作,只是不能解压缩。

标签: amazon-web-services continuous-integration continuous-deployment aws-code-deploy


【解决方案1】:

解决方法:将应用程序文件夹压缩到源构建中,然后在部署时解压缩。

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

【讨论】:

    猜你喜欢
    • 2021-10-12
    • 1970-01-01
    • 2021-08-24
    • 2023-04-03
    • 1970-01-01
    • 2016-03-15
    • 1970-01-01
    • 2012-07-16
    • 1970-01-01
    相关资源
    最近更新 更多