laravel - 符号链接(symbolic link)通过部署脚本在 Laravel Envoyer 中上传文件夹

标签 laravel ubuntu deployment symlink envoyer.io

我有一个部署到 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/

相关文章:

php - 转换 DateTime 时遇到格式不正确的数值

ubuntu - 挂载 HDFS 目录

django - 500 内部服务器错误 - 网站配置错误

docker - 部署docker服务以使用traefik 2.0进行集群

deployment - Visual Studio/WPConnect 无法连接到 WP7 设备

php - Laravel - artisan - 无法插入空列

php - 如何根据 Laravel 中的用户角色管理 Controller 方法?

php - Laravel mySql 加入

linux - 创建服务tomcat - 启动和关闭

mysql - Web 应用程序无法连接到数据库