4

我有一个部署到 AWS 的 laravel 项目。最近我想到了使用 Envoyer 进行零停机部署。

我的项目有一个上传目录,用户上传是通过代码添加的。当然,这不是在 git 中添加的。

因此,当特使部署代码时,我必须将我的上传文件夹符号链接到当前目录。我添加了一个部署脚本(激活新版本后):

ln -s ~/<myproject>/uploads ~/<myproject>/current/uploads

当特使部署时,我得到了符号链接,但目录类似于:

audio  images  uploads

而实际的目录是这样的:

audio images

(注意上面的输出是上传目录中的 ls 命令)

我不明白为什么符号链接有另一个名为 uploads 的目录,而图像和音频文件夹是空的。顺便说一句,在上传符号链接的内部创建的奇怪的新上传文件夹实际上具有正确的结构。但这不是我需要的,我需要在其中包含适当文件的音频和图像文件夹。

我试过什么?

我 ssh 到服务器并运行与我为 envoyer 添加的命令相同的命令,这正在正确创建符号链接。但是为了自动化,我实际上需要在 Envoyer 部署挂钩中拥有它。

任何人有任何想法?我想部署符号链接钩子应该是 Envoyer 中的一种常见做法。

4

1 回答 1

3

问题是我在 git 中已经有一个上传文件夹。(添加它是为了保留每个目录结构中的.gitignore文件)。

为了解决这个问题,我只是在链接之前删除目录。

于 2019-04-25T11:48:48.460 回答