Symfony1 Capifony部署需要内部供应商文件的密码短语

Symfony1 Capifony部署需要内部供应商文件的密码短语,symfony1,debian,capistrano,capifony,composer-php,Symfony1,Debian,Capistrano,Capifony,Composer Php,我正在通过Capifony将Symfony 2应用程序部署到Debian服务器。应用程序的主存储库是私有的,但我也通过composer安装包括一些私有存储库。这造成了问题 主存储库正在进行克隆。我有公钥设置,一个带有scm:passphrase:定义的密码短语设置,以及下面一行以启用密码短语的自动输入: default_run_options[:pty] = true 当我安装供应商时,项目所需的私有存储库需要一个密码短语,因为我已经拥有允许连接到我的存储库的私钥/公钥。它返回以下内容: **

我正在通过Capifony将Symfony 2应用程序部署到Debian服务器。应用程序的主存储库是私有的,但我也通过composer安装包括一些私有存储库。这造成了问题

主存储库正在进行克隆。我有公钥设置,一个带有
scm:passphrase:
定义的密码短语设置,以及下面一行以启用密码短语的自动输入:

default_run_options[:pty] = true
当我安装供应商时,项目所需的私有存储库需要一个密码短语,因为我已经拥有允许连接到我的存储库的私钥/公钥。它返回以下内容:

** [out :: 106.187.50.216] Cloning master
** [out :: 106.187.50.216] Enter passphrase for key '/home/deploy/.ssh/id_rsa':

出现此情况时,我无法输入任何密码短语,因为它只是一个
out
。我认为它共享了密码短语,但似乎
composer.phar安装
没有使用相同的Capifony设置。

作为一种解决方法,我想您应该在部署时使用无密码密钥。您可以将其设置为github上的部署密钥,或者创建一个新帐户,该帐户对您需要的几个repo具有只读访问权限。这样,您就不会有太多的风险与丢失的钥匙,方便


现在要找到一个合适的解决方案,我不确定需要什么。您可以打开一个,我们在那里进一步讨论。基本上,问题在于composer使用了一个普通的git clone命令,没有什么特别的,我想capifony会在初始项目签出时做一些特殊的事情来解锁密钥。

Capistrano/capifony会实时处理输出。如果Git提示输入密码,它将自动给出用户的密码,与密码短语相同。这是Capistrano的一部分,您可以在Capistrano的Git类中看到:


我认为您可以使用无密码策略,也可以使用ssh代理。

我不确定我是否读对了这篇文章,但如果从composer安装(而不是项目存储库)请求git密码/密码短语,则不会调用它。我认为无密码密钥是最简单的解决方案。我知道它没有被调用。我只解释了Git的过程,Composer的情况并非如此。这就是为什么我告诉你要么使用无密码策略,要么使用ssh代理,允许在系统中保留密码短语,并解决这个常见问题。我确实将部署密钥的密码更改为无密码。我想知道Composer git password/passphrase请求是否可以与Capifony部署一起“冒泡”,以调用为部署设置的相同变量。不确定这是否是作曲家的问题。