【发布时间】:2019-09-09 21:33:57
【问题描述】:
我有一个部署到 AWS 的 laravel 项目。最近我想到了使用 Envoyer 进行零停机部署。
我的项目有一个上传目录,其中用户上传是通过代码添加的。当然,这不是在 git 中添加的。
因此,当 envoyer 部署代码时,我必须将我的上传文件夹符号链接到当前目录。我添加了一个部署脚本(激活新版本后):
ln -s ~/<myproject>/uploads ~/<myproject>/current/uploads
当特使部署时,我得到了符号链接,但目录是这样的:
audio images uploads
而实际目录是这样的:
audio images
(注意上面的输出是上传目录下的ls命令)
我不明白为什么符号链接有另一个名为 uploads 的目录,而图像和音频文件夹是空的。顺便说一句,在上传符号链接的内部创建的奇怪的新上传文件夹实际上具有正确的结构。但这不是我需要的,我需要在其中包含适当文件的音频和图像文件夹。
我尝试了什么?
我通过 ssh 连接到服务器并运行了与我为 envoyer 添加的命令相同的命令,这可以正确创建符号链接。但是为了自动化,我实际上需要在 Envoyer 部署挂钩中拥有它。
有人知道吗?我想部署符号链接钩子应该是 Envoyer 中的一种常见做法。
【问题讨论】:
-
你使用
php artisan storage:link吗? -
是的,但是很抱歉这是一个旧项目,以前的开发人员遵循了在根目录中添加“上传”文件夹的做法。所以 storage:link 在这种情况下无济于事。
标签: laravel ubuntu deployment symlink envoyer.io