我正在尝试将django应用程序部署到弹性beanstalk . 我正在使用amazon的预配置Python 3.4 docker容器和新的Awsebcli v3命令行工具进行部署 . 当我运行 eb deploy
时,我收到消息 ERROR: Timed out while waiting for command to Complete
,但是当我运行 eb logs
时,我看不到任何错误迹象 . 当我导航到为环境提供的CNAME时,它只是说 Internal Server Error
在Amazon使用docker预配置的python容器部署到EB的示例中,他们使用了一个烧瓶应用程序并使用名为 application.py
的文件运行应用程序...我没有这样的application.py文件,我认为这可能导致问题 . 我将在application.py文件中放置什么来运行我的django应用程序,以及应用程序所需的任何命令(如果数据库需要同步,则为collectstatic,syncdb,否则makemigrations和migrate等)
我正在使用Django 1.7和Python 3.4
谢谢
1 回答
您的容器是否在本地成功运行?如果没有,我会在您尝试部署到Elastic Beanstalk之前执行此操作 . 我也处于这个过程的中间,并没有发现它特别容易!但是,我已经解决了你提到的问题 .
我的application.py文件如下所示:
那时我有:
这样我就可以使用一个正在运行的应用程序,但不提供我的静态文件,除非我在开发模式下运行 . 我认为这意味着容器的Apache(或者它是Nginx)实例不提供我的/ var / app / static目录,但我还没想到 .
至于
collectstatic
和syncdb
- 到目前为止,我只是手动运行它们 . 我以为它们可以作为CMD条目添加到Dockerfile中,但是Docker will only execute the last of those entries,所以它不起作用 .我的另一个问题是它是否's going to be possible to run two containers on Beanstalk (I have Postgres in one, Django in another). I'我不确定
eb deploy
是否可以应付这个问题 .