2013-01-15 62 views
0

我目前正在尝试使用dotcloud在EC2上部署smartfoxserver 2X。我已经能够检测到亚马逊网络实例的私有IP,并使用dotcloud工具,我已经能够确定正确的端口。但是,我无法通过命令行安装服务器,因此我可以使用AdminTool登录到服务器。Smartfoxserver 2X linux 64通过dotcloud在EC2上运行 - 如何安装?

我安装后相当简单:

./SFS2X/sfs2x-service启动的launchd

我发现,在“dotcloud推”有我在Cygwin的终端输出看好了相当数量,但在提示sfs2x-service已正确启动后,推送会挂起,直到超时。

因此,我的问题是,有没有人找到一种方法通过dotcloud成功在EC2上安装SFS2X?我设法在SFS Pro中取得了部分成功,通过在我的postinstall中调用./jre/bin/java -jar installer.jar完全推送到dotcloud。我是否需要做额外的工作并为SFS2X构建安装程序jar?有没有一种方法可以做到这一点?

我明白,在EC2上使用RightScale的SFS2X有一种标准方法,但是我有兴趣使用dotcloud平台进行部署。

在此先感谢。

回答

1

它挂起的原因是因为您试图在postinstall中启动您的进程,并且这不是正确的做法。如果安装后脚本不会超时,然后取消,则安装后安装脚本即可完成。

完成后安装脚本后,它将完成部署的其余部分。 http://docs.dotcloud.com/0.9/guides/hooks/#post-install

注重在年底这样的警告:

约dotCloud后脚本的详细信息,请参阅此页。

警告: 如果安装后脚本返回一个错误(非零退出代码),或者如果它运行超过10分钟,该平台将考虑您的构建已经失败了,您的代码的新版本将不会部署。

而不是把它放在postinstall脚本中,你应该把它作为后台进程来添加,以便在部署过程完成后启动它。

看到这个页面的详细信息,添加后台进程dotCloud服务:

http://docs.dotcloud.com/0.9/guides/daemons/

TL; DR:你需要创建一个supervisord.conf文件,并将其添加到根你的项目,并添加你的服务。

例(你将需要改变,以适应您的情况):

[program:smartfoxserver] 
command = /home/dotcloud/current/SFS2X/sfs2x-service start-launchd 

此外,还要确保您为了您的dotcloud.yml指定了正确的dotCloud服务有正确的二进制和为您的smartfoxserver应用程序安装的库。

+0

你也可以在''dotcloud.yml''文件中加入''processes:''部分。我发现它比放下supervisord片段要简单一些。 – jpetazzo

+0

感谢您的有用信息!我会玩一玩,看看我有没有进一步的进展。 – user1979000

相关问题