Python中的AWS Elastic Beanstalk container_commands 3.4 Docker容器

我有一个运行在Python 3.4上的Django 1.6应用程序,我想在AWS Elastic Beanstalk上部署,因此我select了“Preconfigured-Docker / Python”(即Python 3.4)作为我的configuration,但部署失败,在container_command运行django-admin.py 。 相同的占位符应用程序包按预期在“预configuration/ Python”configuration(即Python 2.7)上运行,没有错误。

根据文档 .ebextension config container_commands在应用程序和Web服务器已经build立并且应用程序版本文件已被提取之后,但在部署应用程序之前运行。 这似乎是Python 2.7容器的情况,而不是Python 3.4的Docker容器。

为了testing理论,我在我的包中添加了一个脚本来查看环境,并将其作为container_command执行。 Python 2.7容器使用Python 2.7,从requirements.txt安装pip包, django-admin.py预期finddjango-admin.py 。 但Python 3.4 Docker容器在container_command阶段使用Python 2.6,因此没有设置环境来查找django-admin.py或安装的pip包。

如何获得预configuration的Docker / Python(3.4) container_commands在预期的环境中执行container_commands ? 在触发container_commands之前是否缺less激活容器和/或virtualenv的步骤?

AWS Support指出我要添加一个自定义的Dockerfile。 我用我的Dockerfile的ENTRYPOINT来覆盖默认的基础镜像,这样我就可以在自己的脚本中触发syncdb命令。

ref: https : //forums.aws.amazon.com/message.jspa? messageID =595630