【发布时间】:2017-04-02 04:00:14
【问题描述】:
人们: 我正在将带有 redis 的 Flask 应用程序用于会话存储到 docker 容器中。当 redis 在本地运行时,我的应用程序运行愉快。但是,当使用 redis 映像运行 docker-compose 时,我看到以下错误。无论我的 redis 容器是运行还是停止,我都会收到相同的错误:
2017-04-02 03:36:09,861] ERROR in app: Exception on / [GET]
web_1 | Traceback (most recent call last):
web_1 | File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1988, in wsgi_app
web_1 | response = self.full_dispatch_request()
web_1 | File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1643, in full_dispatch_request
web_1 | response = self.process_response(response)
web_1 | File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1864, in process_response
web_1 | self.save_session(ctx.session, response)
web_1 | File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 926, in save_session
web_1 | return self.session_interface.save_session(self, session, response)
web_1 | File "/usr/local/lib/python2.7/site-packages/flask_session/sessions.py", line 165, in save_session
web_1 | self.redis.setex(name=self.key_prefix + session.sid, value=val,
web_1 | AttributeError: 'str' object has no attribute 'setex'
我已将以下配置属性添加到我的应用程序以进行会话配置:
SESSION_TYPE = "redis"
SESSION_REDIS = "redis:6379"
我不认为这是 docker-compose 问题,因为我的应用程序能够成功连接到 MySQL 实例,但这里是我的 docker-compose.yml 文件,以防它指向某些东西:
version: "3"
services:
mysql:
build:
context: db/
web:
build:
context: web/
ports:
- "10080:80"
depends_on:
- "mysql"
- "redis"
redis:
image: "redis:alpine"
【问题讨论】:
标签: session flask redis docker-compose