linux 如何通过Git中的AWS CodeDeploy在部署后保留符号链接(Bitbucket)

jhkqcmku  于 2023-05-06  发布在  Linux
关注(0)|答案(3)|浏览(125)

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

vnjpjtjt

vnjpjtjt1#

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

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

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

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

pu3pd22g2#

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

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

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

kknvjkwl

kknvjkwl3#

正如文档中所述,工件现在支持符号链接。
buildspec.yml中:

artifacts:
  enable-symlinks: yes

相关问题