使用预configuration的Docker容器进行Elastic Beanstalk Django部署
我正在尝试将一个Django应用程序部署到弹性beanstalk。 我正在部署使用亚马逊的预configurationPython 3.4泊坞窗容器和新的Awsebcli v3命令行工具。 当我运行eb deploy
我收到消息ERROR: Timed out while waiting for command to Complete
,但是当我运行eb logs
时,我看不到任何遇到错误的迹象。 当我导航到为环境提供的CNAME时,它只是说Internal Server Error
在Amazon提供的使用docker预configuration的python容器部署到EB的示例中,他们使用了一个容器应用程序,并使用名为application.py
的文件运行应用application.py
…我没有这样一个application.py文件,我想这可能是造成这个问题。 我会在application.py文件中运行我的django应用程序,以及应用程序所需的任何命令(collectstatic,syncdb,如果数据库需要同步,其他makemigrations和迁移等)
我使用Django 1.7和Python 3.4
谢谢
你有容器在本地成功运行吗? 如果不是,那么在尝试部署到Elastic Beanstalk之前,我会这样做。 我也处于这个过程的中间,而不是觉得特别简单! 然而,我已经超越了你提到的问题。
我的application.py文件如下所示:
import os import sys sys.path.insert(0, '/var/app') os.environ['DJANGO_SETTINGS_MODULE'] = 'project.settings' from django.core.wsgi import get_wsgi_application application = get_wsgi_application()
那我在哪里:
/var/app | | project/ settings.py | myapp/ views/ templates/ ...
这就给我留下了一个正在工作的应用程序,但是除非我以开发模式运行,否则不能提供我的静态文件。 我认为这意味着容器化的Apache(或者它是Nginx)实例不在我的/ var / app / static目录中,但是我还没有想到。
至于collectstatic
和syncdb
– 到目前为止,我只是手动运行这些。 我在想,它们可以作为CMD条目添加到Dockerfile中,但是Docker只会执行这些条目中的最后一个 ,所以它不起作用。
另一个问题是,是否可以在Beanstalk上运行两个容器(我的Postgres在一个,Django在另一个)。 我不确定eb deploy
可以应付这个问题。
- 在Elastic Beanstalk的Docker中的cron作业中访问S3
- 我如何使用Hashicorp Vaultpipe理我的应用程序秘密?
- 无法通过S3向Elastic Beanstalk中的Docker进行身份validation
- 为什么要为Docker使用AWS ECS vs. ElasticBeanstalk?
- 如何设置运行Django的AWS Elastic Beanstalk Docker平台?
- 如何从Cloud Formation获得Elastic Container Repository URI?
- Amazon EFS和Docker – 创build映像时出错
- 失败(404错误)通过AWS EBS泊坞窗环境中的Nginx访问Amazon Linux API泊坞窗服务
- 无法将Docker作曲者部署到AWS ECS