我有一个部署到AWS的laravel项目。最近我考虑使用Envoyer实现零停机部署。
我的项目有一个上传目录,用户上传是按代码添加的。当然,这不是在git中添加的。
因此,当envoyer部署代码时,我必须将我的uploads文件夹符号链接到当前目录。我添加了一个部署脚本(激活新版本后):
ln -s ~/<myproject>/uploads ~/<myproject>/current/uploads
当envoyer部署时,我得到符号链接,但dir是这样的:
audio images uploads
虽然实际目录如下:
audio images
(注意上面的输出是上传目录中的ls命令)
我不明白为什么符号链接有另一个名为uploads的目录,图像和音频文件夹是空的。顺便说一句,在上传符号链接中创建的奇怪的新上传文件夹实际上具有适当的结构。但这不是我需要的,我需要将音频和图像文件夹中包含适当的文件。
我试过了什么?
我ssh到服务器并运行我为envoyer添加的相同命令,这正是正确创建符号链接。但要自动化,我实际上需要在Envoyer部署钩子中。
谁有任何想法?我想部署符号链接钩子应该是Envoyer中的常见做法。
问题是我在git中已有一个uploads文件夹。 (这是为了保留目录结构而添加的,每个文件都包含.gitignore
文件)。
要解决这个问题,我只是在链接之前删除目录。