我正在使用弹性beantalk来部署Django应用程序。今天,它突然停止了工作,而没有在应用程序端进行任何重大更改(我更改了一些模板,仅此而已)。
[尝试部署应用程序10分钟后,部署超时,但没有任何反应。
我在日志中只能看到的或多或少有用的提示是:
[2020-02-20T15:00:20.437Z] INFO [19057] - [Application update .../postbuild_0_myproject/Command 01_migrate] : Activity execution failed, because: SystemCheckError: System check identified some issues:
ERRORS:
education.Author.photo: (fields.E210) Cannot use ImageField because Pillow is not installed.
HINT: Get Pillow at https://pypi.org/project/Pillow/ or run command "pip install Pillow".
education.Course.cover_image: (fields.E210) Cannot use ImageField because Pillow is not installed.
HINT: Get Pillow at https://pypi.org/project/Pillow/ or run command "pip install Pillow".
education.CourseCategory.icon_image: (fields.E210) Cannot use ImageField because Pillow is not installed.
HINT: Get Pillow at https://pypi.org/project/Pillow/ or run command "pip install Pillow".
Using staging settings
App receivers connected
(ElasticBeanstalk::ExternalInvocationError)
[2020-02-20T15:00:20.437Z] INFO [19057] - [Application update .../postbuild_0_myproject/Command 01_migrate] : Activity failed.
[2020-02-20T15:00:20.437Z] INFO [19057] - [Application update .../postbuild_0_myproject] : Activity failed.
[2020-02-20T15:00:20.437Z] INFO [19057] - [Application update ...] : Activity failed.
[2020-02-20T15:00:20.507Z] INFO [19057] - [Application update app-9a24-200220_145942-stage-200220_145942@142/AppDeployStage0/EbExtensionPostBuild] : Activity failed.
[2020-02-20T15:00:20.507Z] INFO [19057] - [Application update app-9a24-200220_145942-stage-200220_145942@142/AppDeployStage0] : Activity failed.
[2020-02-20T15:00:20.508Z] INFO [19057] - [Application update app-9a24-200220_145942-stage-200220_145942@142] : Completed activity. Result:
Application update - Command CMD-AppDeploy failed
但是我已经在requirements.txt
中添加了枕头,并且上面的日志显示:
Requirement already satisfied: Pillow==6.2.1 in /opt/python/run/venv/lib64/python3.6/site-packages (from -r /opt/python/ondeck/app/requirements.txt (line 51))
如何解决并解决此问题?以及将来如何避免类似问题?我真的很害怕,同样的问题可能会在生产环境中随机弹出。
有关配置的更多信息:
这是.ebextensions
中的内容:
01_packages.config
:
packages:
yum:
git: []
postgresql93-devel: []
db-migrate.config
container_commands:
01_migrate:
command: "django-admin.py migrate"
leader_only: true
option_settings:
aws:elasticbeanstalk:application:environment:
DJANGO_SETTINGS_MODULE: myproject.settings
django.config
option_settings:
aws:elasticbeanstalk:container:python:
WSGIPath: myproject/wsgi.py
wsgi_custom.config
files:
"/etc/httpd/conf.d/wsgihacks.conf":
mode: "000644"
owner: root
group: root
content: |
WSGIPassAuthorization On
[如果您没有使用virtualenv或同等的虚拟机,请现在设置一个,如果您已经在使用它,那么请检查您是否正在使用pip3 install pillow
安装枕头-pip3
在这里像在debian(和许多其他)系统上一样重要正常的pip
仅适用于python2.x。
使用conda可以确保在生产中不会发生这种情况,但是我还将其添加到部署时要检查的事情清单中-检查枕头设置和工作的正确版本。
另一个未能重新启动,并且每次执行任何操作都超时。我设法解决此问题,方法是转到“配置”>“容量”,并将实例的最小和最大数量更改为0。我已经应用了更改,等待它们应用,然后返回最小和最大实例数的先前值。] >
解决了问题。
我仍然不知道是什么原因导致了这个问题,很想收到对此的评论。