下面以在 Linux 系统上使用 Goploy 进行软链接部署一个简单的 Node.js 项目为例,详细介绍软链接部署的实际操作步骤。
- 服务器:确保目标服务器已安装必要的环境,如 Node.js、npm 等。
- Goploy:在服务器上安装并配置好 Goploy,确保其可以正常运行。
假设项目部署目录为 /var/www/myapp
,我们将不同版本的项目文件存放在 /var/www/releases
目录下,每个版本对应一个子目录,例如 v1
、v2
等。当前运行的版本通过软链接 /var/www/myapp
指向具体的版本目录。
当有新的版本需要部署时,在 /var/www/releases
目录下创建一个新的版本目录,例如 v3
,并将项目文件上传到该目录。可以使用 scp
命令从本地将文件上传到服务器:
scp -r /local/path/to/myapp user@server:/var/www/releases/v3
进入新版本目录,安装项目所需的依赖:
cd /var/www/releases/v3
npm install
使用 ln -sfn
命令更新软链接,使其指向新版本目录:
ln -sfn /var/www/releases/v3 /var/www/myapp
-s
表示创建软链接。
-f
表示如果目标软链接已存在,则强制覆盖。
-n
表示如果目标是一个指向目录的软链接,不进行递归操作。
如果项目是作为服务运行的,需要重启服务以使新版本生效。假设使用 pm2
管理 Node.js 项目,可执行以下命令:
如果使用 Goploy 自动化执行上述步骤,可以在 Goploy 中进行如下配置:
在 Goploy 界面中创建一个新的项目,填写项目名称、仓库地址等信息。
在 Goploy 的部署脚本中添加以下内容:
RELEASE_DIR="/var/www/releases/v$(date +%Y%m%d%H%M%S)"
mkdir -p $RELEASE_DIR
git clone <仓库地址> $RELEASE_DIR
cd $RELEASE_DIR
npm install
ln -sfn $RELEASE_DIR /var/www/myapp
pm2 restart myapp
在 Goploy 界面中选择要部署的项目和版本,点击部署按钮,Goploy 会自动执行上述部署脚本,完成软链接部署。
通过以上步骤,就可以使用软链接部署的方式快速更新项目版本,提高部署效率。