Bitbucket配置git-ftp自动部署到FTP时提示无法访问远程错误如何解决
Bitbucket Pipeline FTP部署报错解决方案
报错根本原因
你遇到的FTP访问报错主要由以下几类问题导致,优先级从高到低排列:
- 命令语法错误:你配置的
git ftp init--user中init和--user之间缺少空格,导致参数解析错误 - 变量名拼写错误:配置中的
$SEVER_ADDRESS拼写错误,正确应为$SERVER_ADDRESS,导致无法正确读取FTP服务器地址变量 - 仓库变量配置不匹配:Bitbucket后台配置的变量名、值和yml文件中引用的不一致,比如大小写错误、值包含多余引号
- 首次部署后重复执行init命令:
git ftp init仅适用于第一次往FTP目录上传代码,后续提交再执行init会触发访问冲突 - 服务器网络限制:FTP服务器的防火墙/安全组未放开Bitbucket Pipelines的出口IP段,或未开启FTP被动模式
- 权限问题:FTP账号对
/temp目录没有写入权限
具体修复步骤
- 第一步:修正yml文件的语法错误,调整后的script段如下:
script: - apt-get update - apt-get -qq install git-ftp # 首次部署用init,后续部署将init替换为push即可 - git ftp init --user "$FTP_USERNAME" --passwd "$PASSWORD" ftp://$SERVER_ADDRESS/temp --all --force -v
- 第二步:检查Bitbucket仓库变量配置:进入对应仓库 → 设置 → Pipelines → 仓库变量,确认已添加如下3个变量,变量名大小写和yml完全一致,值不要包裹多余引号:
FTP_USERNAME:FTP登录账号PASSWORD:FTP登录密码SERVER_ADDRESS:FTP服务器IP/域名
- 第三步:调整FTP服务器权限与网络规则:
- 确认FTP账号对
/temp目录有读写权限 - 在服务器防火墙/安全组中放开FTP 21端口,以及FTP被动模式对应的端口范围
- 将Bitbucket Pipelines官方出口IP段加入服务器白名单
- 确认FTP账号对
- 第四步:如果仍然报错,可以在script中增加一行测试命令,输出详细连通性日志:
curl -v ftp://$SERVER_ADDRESS --user "$FTP_USERNAME:$PASSWORD"
内容的提问来源于stack exchange,提问作者IbrarAsim
相关产品推荐
相关产品推荐

