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