我正在通过CodeDeploy工具从Bitbucket部署文件。部署到EC2示例后,符号链接将变为空文件夹。是否有方法在部署后保留符号链接?
vnjpjtjt1#
部署将在复制新文件之前清理目标文件夹。您可以为AfterInstall添加hook到appspecs.yml以再次创建符号链接。
AfterInstall
appspecs.yml
hooks: AfterInstall: - location: /deploy/AfterInstall.sh timeout: 3000 runas: root
然后在文件AfterInstall.sh中添加创建符号链接的命令
AfterInstall.sh
#!/bin/bash ln -s /path/to/file /path/to/symlink
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
本质上,这将在存储库中找到任何一行文件,并为每个文件检查它是否是另一个文件的路径(相对于符号链接文件的位置)并重新创建符号链接。
kknvjkwl3#
正如文档中所述,工件现在支持符号链接。在buildspec.yml中:
buildspec.yml
artifacts: enable-symlinks: yes
3条答案
按热度按时间vnjpjtjt1#
部署将在复制新文件之前清理目标文件夹。您可以为
AfterInstall
添加hook到appspecs.yml
以再次创建符号链接。然后在文件
AfterInstall.sh
中添加创建符号链接的命令pu3pd22g2#
您可以将此代码放入作为部署的一部分运行的脚本中:
本质上,这将在存储库中找到任何一行文件,并为每个文件检查它是否是另一个文件的路径(相对于符号链接文件的位置)并重新创建符号链接。
kknvjkwl3#
正如文档中所述,工件现在支持符号链接。
在
buildspec.yml
中: