暗坑很多
部署过程 
- 需要自行维护一个 env 作为配置文件
REDASH_COOKIE_SECRET=a07cca441ab9f28b66c589f3118e0de48469b1bc6a5036eade7badbed305d96e
POSTGRES_HOST_AUTH_METHOD=trust
REDASH_REDIS_URL=redis://redis:6379/0
REDASH_DATABASE_URL=postgresql://postgres- 需要创建一个 postgres-data 并配置 docker-compose.yml 的路径,数据库持久化 
- 需要给 postgres 容器增加 sudo 命令 - apk add sudo
 
- 需要手工进入到 postgresql 容器内创建 role 和 database - createuser -U postgres redash
- createdb -U postgres redash
 
- 执行数据库初始化动作 
- docker-compose run --rm server create_db 
- 然后重启 redash 全部服务即可 docker-compose down 后重启 
postgresql 在执行 psql 命令时,默认会读取当前系统用户作为执行 role;但 psql 默认用户是 postgres
https://redash.io/help/open-source/setuphttps://redash.io/help/open-source/dev-guide/dockerhttps://docs.victoriametrics.com/url-examples.html#apiv1exportcsv
- redash env 配置:https://redash.io/help/open-source/admin-guide/env-vars-settings
- postgres 权限问题 https://stackoverflow.com/a/25051632/5067657
- https://techoverflow.net/2021/05/07/how-to-fix-alpine-linux-ash-sudo-not-found/
- https://discuss.redash.io/t/error-99-connecting-to-localhost-6379-cannot-assign-requested-address/9716/7
启动的服务介绍 
- v10-redashio_adhoc_worker_1 # 执行查询任务的 worker
- v10-redashio_postgres_1 # 数据库
- v10-redashio_redis_1 # 缓存
- v10-redashio_scheduled_worker_1 # 执行计划任务的 worker
- v10-redashio_scheduler_1 # 计划任务管理 server
- v10-redashio_server_1 # 主体 server
以上主要会设计到 3 个镜像,redis、pgsql、redash,其中核心是 redash,所以关注镜像版本也是这个
版本升级 
redash 的版本升级较为方便,更换 server 的镜像;然后升级数据库即可。
测试过从 v8 升级到 v10 , 和 v9 升级到 v10,都是 ok 的。
- 关闭 Redash 服务 - docker-compose stop server scheduler scheduled_worker adhoc_worker
 
- 更新 docker-compose.yml - 基本上这一步,只需要更新 redash 的镜像版本即可
- 然后执行 docker-compose pull拉取新镜像版本
 
- 执行数据库升级 - docker-compose run --rm server manage db upgrade
 
- 启动全部服务即可 - docker-compse up -d
 
解决 ES 的 HTTPS 问题 
由于我们的 es 地址访问地址采用 https,但为自签证书,所以在 request 之中会有些问题,所以我在这里更新了 elasticsearch 的插件,然后将其上传到我个人的 docker hub. https://hub.docker.com/r/samzong/redash
带来的问题,页面上无法选择到 Elasticsearch 作为数据源,没时间去研究了
看了下还是可以使用 redash 的 API 去创建的 /api/data_sources:
配置 
{
  "options": {
    "basic_auth_password": "-----",
    "basic_auth_user": "elastic",
    "server": "https://10.6.51.101:31001/",
    "skip_tls_verification": true
  },
  "type": "elasticsearch",
  "name": "test-es"
}创建完成后,就可以在页面上更新了。