0

我目前正在尝试使用 dotcloud 在 EC2 上部署 smartfoxserver 2X。我已经能够检测到亚马逊网络实例的私有 ip,并且使用 dotcloud 工具我已经能够确定正确的端口。但是,我很难通过命令行正确安装服务器,以便我可以使用 AdminTool 登录它。

我的 postinstall 相当简单:

./SFS2X/sfs2x-service start-launchd

我发现在“dotcloud push”上,我的 cygwin 终端中有相当多的有希望的输出,但是在说 sfs2x-service 已正确启动之后,推送挂起,直到超时。

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

我确实了解在 EC2 上使用 RightScale 使用 SFS2X 进行部署有一种标准方法,但是我对使用 dotcloud 平台进行部署很感兴趣。

提前致谢。

4

1 回答 1

1

它挂起的原因是因为您试图在安装后启动您的进程,而这不是执行此操作的正确位置。安装后脚本应该完成,如果没有完成,部署将超时,然后被取消。

安装后脚本完成后,它将完成其余的部署。

有关 dotCloud 后安装脚本的更多信息,请参阅此页面:http: //docs.dotcloud.com/0.9/guides/hooks/#post-install

最后注意这个警告。

警告:如果您的安装后脚本返回错误(非零退出代码),或者如果它运行超过 10 分钟,平台将认为您的构建失败,并且不会部署您的新版本代码.

您应该将其添加为后台进程,而不是将其放在安装后脚本中,以便在部署过程完成后启动它。

有关将后台进程添加到 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 应用程序安装正确的二进制文件和库。

于 2013-01-15T14:05:01.463 回答