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