Docker Redash搭建
准备docker-compose.yml
version: '2'
services:
server:
image: redash/redash:8.0.2.b37747
command: server
depends_on:
- postgres
- redis
ports:
- "5000:5000"
environment:
PYTHONUNBUFFERED: 0
REDASH_LOG_LEVEL: "INFO"
REDASH_REDIS_URL: "redis://redis:6379/0"
REDASH_DATABASE_URL: "postgresql://postgres@postgres/postgres"
REDASH_COOKIE_SECRET: "suibianxieyige"
REDASH_WEB_WORKERS: 4
REDASH_MAIL_SERVER: "smtp.exmail.qq.com"
REDASH_MAIL_PORT: 465
REDASH_MAIL_USE_TLS: "true"
REDASH_MAIL_USE_SSL: "true"
REDASH_MAIL_USERNAME: "xxx@xx.com"
REDASH_MAIL_PASSWORD: "xxx"
REDASH_MAIL_DEFAULT_SENDER: "xxx@xx.com"
REDASH_HOST: "http://xxx.com"
REDASH_ADDITIONAL_QUERY_RUNNERS: "redash.query_runner.python"
restart: always
worker:
image: redash/redash:8.0.2.b37747
command: scheduler
environment:
PYTHONUNBUFFERED: 0
REDASH_LOG_LEVEL: "INFO"
REDASH_REDIS_URL: "redis://redis:6379/0"
REDASH_DATABASE_URL: "postgresql://postgres@postgres/postgres"
REDASH_COOKIE_SECRET: "xxx"
REDASH_ADDITIONAL_QUERY_RUNNERS: "redash.query_runner.python"
QUEUES: "queries,scheduled_queries,celery"
WORKERS_COUNT: 2
restart: always
redis:
image: redis:3.0-alpine
ports:
- "6379:6379"
volumes:
- ./data/redis_data:/data
restart: always
postgres:
image: postgres:9.5.6-alpine
ports:
- "5432:5432"
volumes:
- ./data/postgresql_data:/var/lib/postgresql/data
restart: always
初始化数据库
docker-compose run --rm server create_db
启动服务
docker-compose up -d
Nginx代理
upstream rd_server {
server 172.28.51.191:5000;
}
server{
listen 80;
# 此域名是提供给最终用户的访问地址
server_name xxx.com;
access_log /var/log/nginx/rd.access.log;
gzip on;
gzip_types *;
gzip_proxied any;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://rd_server/;
}
}
可能会用到,解决邮件发送失败
遇到的问题:
直接测试邮件发送可以收到
docker exec -it redash-server-1 python manage.py send_test_mail xxx@xxx.com
但是在页面上点击忘记密码,却收不到邮件。查看日志是redash-worker里面报错。
参考:https://github.com/getredash/redash/issues/5266
亲测有效解决方案如下
- 创建一个evn文件,把server下的environment复制出来并改成properties类型,如下
vim /opt/redash/env
PYTHONUNBUFFERED=0
REDASH_LOG_LEVEL=INFO
REDASH_REDIS_URL=redis://redis:6379/0
REDASH_DATABASE_URL=postgresql://postgres@postgres/postgres
REDASH_COOKIE_SECRET=redash
REDASH_WEB_WORKERS=4
# 邮件配置
REDASH_MAIL_SERVER=smtp.xxx.com
REDASH_MAIL_PORT=587
REDASH_MAIL_USE_TLS=true
REDASH_MAIL_USE_SSL=false
REDASH_MAIL_USERNAME=xxx@xxx.com
REDASH_MAIL_PASSWORD=xxx
REDASH_MAIL_DEFAULT_SENDER=xxx@xxx.com
REDASH_HOST=https://xxx.com
- 然后在docker-compose.yml里加上引用,在redash-woker下添加: env_file: /opt/redash/env,请参考
...
worker:
image: redash/redash:8.0.2.b37747
command: scheduler
environment:
PYTHONUNBUFFERED: 0
REDASH_LOG_LEVEL: "INFO"
REDASH_REDIS_URL: "redis://redis:6379/0"
REDASH_DATABASE_URL: "postgresql://postgres@postgres/postgres"
REDASH_COOKIE_SECRET: "xxx"
REDASH_ADDITIONAL_QUERY_RUNNERS: "redash.query_runner.python"
QUEUES: "queries,scheduled_queries,celery"
WORKERS_COUNT: 2
env_file: /opt/redash/env # 这里是新添加的,宿主机上的绝对路径
restart: always
...
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端