我正在通过CodeDeploy工具从Bitbucket部署文件。部署到EC2实例后,符号链接变为空文件夹。有没有办法在部署后保留符号链接?
答案 0 :(得分:6)
部署将在复制新文件之前清理目标文件夹。
您可以为appspecs.yml
添加AfterInstall
的挂钩以再次创建符号链接。
hooks:
AfterInstall:
- location: /deploy/AfterInstall.sh
timeout: 3000
runas: root
然后在文件AfterInstall.sh
中添加命令以创建符号链接
#!/bin/bash
ln -s /path/to/file /path/to/symlink
答案 1 :(得分:1)
您可以将此代码放入部署中运行的脚本中:
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
基本上,这将在存储库中找到任何一个行文件,并针对每个文件检查它是否是另一个文件的路径(相对于符号链接文件所在的位置),然后重新创建符号链接。