【发布时间】:2021-08-13 15:27:57
【问题描述】:
我正在使用 gitlab-ci 来自动化构建和发布。在上一项工作中,我想使用 lftp 将工件上传到远程服务器。
$(pwd)/publish/ 地址是上一个作业中生成的工件。以及在 gitlab Settings --> CI / CD 中声明的所有变量。
这是工作yaml代码:
upload-job:
stage: upload
image: mwienk/docker-lftp:latest
tags:
- dotnet
only:
- master
script:
- lftp -e "open $HOST; user $FTP_USERNAME $FTP_PASSWORD; mirror -X .* -X .*/ --reverse --verbose --delete $(pwd)/publish/ wwwroot/; bye"
请注意,lftp 会传输我的文件,但是我不确定我的所有文件都已传输。
我添加了echo "All files Transfered.",但它从未运行。
管道日志中没有错误和警告,但出现以下错误:
我不知道它是干什么用的。有没有人遇到过这个错误并找到了解决方案?
【问题讨论】:
-
顺便说一句,它不会传输所有内容。我也有这个问题,这就是我所做的: lftp -p 22 -e "open $SERVER_HOST; user $FTP_USERNAME $FTP_PASSWORD; set ssl:check-hostname no; rm -r $SERVER_PROJECT_DIR/*; mirror -X 。 * -X .*/ --reverse --verbose --delete ./publish $SERVER_PROJECT_DIR; 再见"
-
您是否还确保您的 ftp 帐户具有文件夹中的所有访问/写入权限?您可能需要 chmod 目录及其所有文件和子目录
-
@MrJami 您建议的脚本不起作用。用户可以完全控制目标文件夹。
-
它根本不起作用?我的 gitlab 跑步者 2 分钟前刚刚使用它,它工作。或者你的意思是你有同样的错误?
-
@MrJami 它的工作方式与问题中的当前类似。
标签: bash shell gitlab yaml gitlab-ci