AWS EB,Play Framework和Docker:应用程序已经运行

DkM*_*DkM 2 amazon-web-services playframework docker amazon-elastic-beanstalk

我在AWS Elastic Beanstalk上运行Play 2.2.3 Web应用程序,使用SBT生成Docker镜像的能力.从EB管理界面上传图像通常可以正常工作,但有时会进入我一直收到以下错误的状态:

Docker容器意外退出11月27日星期四10:05:37 UTC 2014:播放服务器进程ID为1此应用程序已在运行(或删除/ opt/docker/RUNNING_PID文件).

部署失败.除了终止环境并重新设置环境之外,我无法做到这一点.我怎样才能避免环境进入这种状态?

Usm*_*ail 5

听起来你可能会遇到臭名昭着的Pid 1问题.Docker为每个容器使用一个新的pid命名空间,这意味着第一个进程获得PID 1. PID 1是一个特殊的ID,只能由设计使用它的进程使用.您是否可以尝试使用Supervisord而不是将playframework作为主要进程运行,看看是否能解决您的问题?希望supervisord能够比play框架更好地处理Amazon的终止命令.