2012-07-13 51 views
0

我正在通过Capifony将Symfony 2应用程序部署到Debian服务器。该应用程序的主要存储库是私有的,但我也通过作曲家安装来包含一些私有存储库。这是造成问题的原因。Capifony Deploy需要内部供应商文件的密码

主存储库克隆就好了。我有公共密钥设置,口令设置与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 install不使用相同的Capifony设置。

回答

0

作为解决方法,您应该使用无密码密钥进行部署。您可以将其设置为github上的部署密钥,或创建一个只读访问您所需的少量回购站的新帐户。这样,您可以获得便利,而不会因失去该密钥而造成太多风险。

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

+0

我确实将其更改为部署密钥的无密码。我想知道Composer git密码/密码短语请求是否可以通过Capifony部署“冒泡”来调用为部署设置的相同变量。不知道它是否使这是一个作曲家问题。 – frodosghost 2012-07-15 22:10:09

0

Capistrano/capifony实时处理输出。如果Git提示输入密码,它将自动给出用户的密码,与密码相同。这是Capistrano的一部分,你可以在Capistrano的Git类中看到:https://github.com/capistrano/capistrano/blob/master/lib/capistrano/recipes/deploy/scm/git.rb#L255

我认为你可以使用无密码的策略,或者使用ssh-agent。

+0

我不知道我是否读了这个权利,但是如果从作曲家安装(而不是项目存储库)请求git密码/密码短语,则不会调用此密码。 我认为无密码密钥是最简单的解决方案。 – frodosghost 2012-07-15 22:06:27

+0

我知道这不叫。我只解释了Git的过程,Composer并不是这样。这就是为什么我告诉你要么使用无密码策略,要么使用允许在系统中保留密码的ssh-agent,并解决这个常见问题。 – 2012-07-16 06:55:39