从Bitbucket代码库推送到共享托管FTP服务器

13
我正在使用Bitbucket管理我的私有存储库。
我希望在每次提交更新的文件部署到ftp服务器上。
我搜索了很多脚本,但没有成功。FTP服务器是一个共享主机服务器,通过FTP显式连接模式使用Filezilla访问。
我不想使用任何第三方在线应用程序。
请指导我一步步解决方案。
我正在尝试使用this
但是在Bitbucket账户的部署密钥中必须输入哪个键?私钥还是公钥?

1
你尝试过Bitbucket FTP部署脚本吗?这是由Bitbucket的作者编写的。https://bitbucket.org/sibbl/bitbucket-ftp-deployment/wiki/Home - jan.zikan
同样适用于普通的FTP连接。但是我如何在显式FTPS连接中做到相同的事情呢? - Ck Maurya
仍在等待解决方案吗? - Ck Maurya
@CkMaurya,其他人都这样做... - Andreas Furster
1
我刚刚发现这个,但还没有尝试过。https://ftploy.com - Gino
显示剩余3条评论
2个回答

21

您可以使用新的Bitbucket工具Pipelines!配置一个新的管道文件:

    image: samueldebruyn/debian-git
      pipelines:
      default:
        - step:
          script:
            - apt-get update
            - apt-get -qq install git-ftp
            - git ftp init --user $FTP_USERNAME --passwd $FTP_PASSWORD ftp://server/public_html/

在提交之前,请在设置 -> 环境变量中创建环境变量$FTP_USERNAME和$FTP_PASSWORD。

要进行推送,请编辑源代码并将“init”更改为“push”,然后提交以替换共享服务器上的文件。

有关更多信息,请观看此视频:https://www.youtube.com/watch?v=8HZhHtZebdw


这个方案大约运行了一个半月,然后就突然停止工作了。Pipeline 在 Bitbucket 上成功完成,但不再通过 FTP 复制任何文件。我已经试图解决了两天了,有什么想法吗? - AndyWarren
1
你好朋友,我已经有一段时间没有通过管道了,尝试检查环境变量中的FTP访问是否处于活动状态,只要生产服务器没有更改IP/域名。 - Brian
Git-FTP 是快速部署的绝佳解决方案。 - MaximOrlovsky
上面答案中需要注意的几点:"$FTP_USERNAME" 可能会弹出一个提示,建议“主体具有一些无效参数”。移除特殊符号即可完成。 - Sudhir Kaushik

2
这是一个很久以前的问题。然而,我回复这个问题是希望任何其他人寻找解决方案。

您可以使用BitBucket提供的FTP部署PHP脚本

如果您需要FTPS显式,在上传上述代码的functions.inc.php中,替换此行:

$conn_id = ftp_connect($ftp_host);

以下是:
// set up basic ssl connection
$conn_id = ftp_ssl_connect($ftp_host);

这将让您准备好使用此脚本进行显式 SSL-FTP 连接,而不是明文 FTP。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接