【问题标题】:How to keep symlinks after deploy via AWS CodeDeploy from Git (Bitbucket)如何在通过 AWS CodeDeploy 从 Git (Bitbucket) 部署后保留符号链接
【发布时间】:2017-07-05 11:04:08
【问题描述】:

我正在通过 CodeDeploy 工具从 Bitbucket 部署文件。部署到 EC2 实例后,符号链接变为空文件夹。部署后有没有办法保留符号链接?

【问题讨论】:

    标签: linux amazon-web-services amazon-ec2 symlink aws-code-deploy


    【解决方案1】:

    部署将在复制新文件之前清理目标文件夹。 您可以为AfterInstall 添加挂钩到appspecs.yml 以再次创建符号链接。

    hooks:
        AfterInstall:
          - location: /deploy/AfterInstall.sh
            timeout: 3000
            runas: root
    

    然后在文件AfterInstall.sh中添加创建符号链接的命令

    #!/bin/bash
    ln -s /path/to/file /path/to/symlink
    

    【讨论】:

    • 谢谢 Ankit!我也想过,但希望有一些开箱即用的解决方案:-)
    【解决方案2】:

    您可以将此代码放入作为部署的一部分运行的脚本中:

    files=$(find . -type f -exec awk 'END { if (NR == 1) print FILENAME }' {} \;)
    
    for file in $files ; do
      pushd $(dirname $file)
      contents=$(cat $(basename $file))
    
      if [ -f $contents ] ; then
        rm $(basename $file)
        ln -s $contents
      fi
    
      popd
    done
    

    基本上,这将在 repo 中找到任何一行文件,并为每个文件检查它是否是另一个文件的路径(相对于符号链接文件所在的位置)并重新创建符号链接。

    【讨论】:

      猜你喜欢
      • 2021-09-03
      • 2015-12-12
      • 2018-10-16
      • 1970-01-01
      • 1970-01-01
      • 2018-12-16
      • 2017-07-07
      • 1970-01-01
      • 2014-11-12
      相关资源
      最近更新 更多