我正在尝试在Elastic Beanstalk上部署Flask应用,但是当我运行eb create
时出现以下错误:
ERROR: Your requirements.txt is invalid. Snapshot your logs for details.
ERROR: [Instance: i-04837a6167d3738a3] Command failed on instance. Return code: 1 Output: (TRUNCATED)...)
File "/usr/lib64/python2.7/subprocess.py", line 541, in check_call
raise CalledProcessError(retcode, cmd)
CalledProcessError: Command '/opt/python/run/venv/bin/pip install -r /opt/python/ondeck/app/requirements.txt' returned non-zero exit status 1.
Hook /opt/elasticbeanstalk/hooks/appdeploy/pre/03deploy.py failed. For more detail, check /var/log/eb-activity.log using console or EB CLI.
问题似乎来自应用程序使用的文章提取库(http://newspaper.readthedocs.io/en/latest/index.html),该库具有sudo apt-get install libxml2-dev libxslt-dev
和sudo apt-get install libjpeg-dev zlib1g-dev libpng12-dev
等依赖关系。
如何在Elastic Beanstalk上安装这些依赖项?
答案 0 :(得分:0)
你有几个选择。
您可以安装所有必需的软件包,然后在安装软件包的情况下创建服务器的映像。然后,您可以在启动任何新实例时使用该AMI,并且这些包将可用。
您还可以使用.ebextensions在代码中管理它。您可以使用它来安装服务器启动时所需的任何软件包。
http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/ebextensions.html
这是如何工作的一个示例是我将bean替换为nginx用于beanstalk应用程序:https://github.com/ricktbaker/beanstalk-nginx-php-fpm
或者您可以创建自定义平台。这可能对您的需求有点过分,但这是一个选择:
http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/custom-platforms.html