Gitlab CI job 在手动 ftp 部署(lftp)命令成功完成后失败

40次阅读
没有评论

问题描述

在使用Gitlab CI时,遇到了一个问题。他使用LFTP通过sftp部署文件,传输成功并且所有文件都到达目标位置,但是作业却失败了。他想知道是什么原因导致了deploy-stage作业的失败。

解决方案

请注意以下操作注意版本差异及修改前做好备份。

方案1

首先,我们可以尝试解决空间问题。根据作业输出,出现了No space left on device的错误。这可能是由于磁盘空间不足导致的。请确保目标服务器上有足够的磁盘空间来存储所有文件。

其次,关于使用LFTP的问题,你可以尝试添加一些额外的参数来解决问题。根据最佳回答,你可以在LFTP命令中添加以下参数:

set ftp:use-allo false; set ftp:passive-mode true; set ftp:prefer-epsv false;

这将禁用ALLO命令,并启用被动模式和EPSV模式。修改后的LFTP命令如下:

lftp -e "set ftp:use-allo false; set ftp:passive-mode true; set ftp:prefer-epsv false; set ssl:verify-certificate no; open my-project.com; user $LFTP_USERNAME $LFTP_PASSWORD; mirror --reverse --verbose build/ /var/www/domains/dev/projects/my-project/build/; bye"

请注意,这只是一个解决方案的示例,你可以根据自己的需求进行调整。

方案2

如果你无法解决问题,你可以尝试使用其他的FTP程序。根据用户的评论,rsync是一个不错的选择,但是由于某些服务器不支持rsync,所以无法使用。你可以尝试寻找其他的FTP程序来替代LFTP。

以上是解决这个问题的两种可能的方案。你可以根据自己的情况选择适合你的解决方案。希望能帮到你!

正文完