【发布时间】:2017-07-05 11:04:08
【问题描述】:
我正在通过 CodeDeploy 工具从 Bitbucket 部署文件。部署到 EC2 实例后,符号链接变为空文件夹。部署后有没有办法保留符号链接?
【问题讨论】:
标签: linux amazon-web-services amazon-ec2 symlink aws-code-deploy
我正在通过 CodeDeploy 工具从 Bitbucket 部署文件。部署到 EC2 实例后,符号链接变为空文件夹。部署后有没有办法保留符号链接?
【问题讨论】:
标签: linux amazon-web-services amazon-ec2 symlink aws-code-deploy
部署将在复制新文件之前清理目标文件夹。
您可以为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
【讨论】:
您可以将此代码放入作为部署的一部分运行的脚本中:
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 中找到任何一行文件,并为每个文件检查它是否是另一个文件的路径(相对于符号链接文件所在的位置)并重新创建符号链接。
【讨论】: