redash 10.1.0 在 CentOS 7.6 docker 下的安装

  |   0 评论   |   0 浏览

背景

之前记录过两篇《redash 8.0 在 debian 10.3 下的安装》和《redash 在 CentOS 下的安装》。这次基本流程是一样的,只是操作系统环境和版本有些区别。

准备环境

各依赖为:

  • Python (3)
  • PostgreSQL (9.6 or newer)
  • Redis (3 or newer)
  • Node.js (14.16.1 or newer)

安装Redis

yum install redis

版本为 redis 3.2.12

准备配置文件 redis.conf,内容为:

bind 127.0.0.1

运行

redis-server redis.conf

安装PostgreSQL数据库

yum install postgresql postgresql-server-9.2.24-1.el7_5.x86_64

docker下安装的PostgreSQL,需要自己初始化。

初始化目录

mkdir -p ConfigDir
initdb -D ConfigDir
chmod 0700 ConfigDir

初始化配置文件

cp /usr/share/pgsql/postgresql.conf.sample postgresql.conf

然后编辑其中的两行:

data_directory = 'ConfigDir'
hba_file = 'ConfigDir/pg_hba.conf'
ident_file = 'ConfigDir/pg_ident.conf'

# 禁用IPV6
listen_addresses = '127.0.0.1'

创建数据库

createdb abeffect # 我这里的用户名为abeffect

创建数据库用户

默认已经是md5了,所以这步可跳过。

修改认证方式为md5,编辑文件 /etc/postgresql/13/main/pg_hba.conf

将METHOD由 trust改为 md5

然后创建用户

create user username with SUPERUSER password 'password';

或者

createuesr username -s # 创建管理员用户
dropuser username # 删除用户方法

启动服务

postgres --config-file=postgresql.conf

测试

psql --host=127.0.0.1 --username=root test

安装Python3

yum源中的版本为3.6.8

yum install python3-devel

安装其它依赖

yum install libpqxx-devel python36-bcrypt

安装redash

下载

wget https://github.com/getredash/redash/archive/refs/tags/v10.1.0.zip

安装依赖

升级setuptools到setuptools-57.5.0, 安装需要root权限的包。

sudo python3 -m pip install setuptools==57.5.0 setuptools_rust wheel click -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host=mirrors.aliyun.com
sudo python3 -m pip install -r requirements.txt -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host=mirrors.aliyun.com

创建数据库

环境准备:

export REDASH_COOKIE_SECRET=自己生成一个字符串

将数据库连接信息放在 .env中,如:

REDASH_DATABASE_URL=postgresql://xxx:xxx@ip:port/redash

建表:

./bin/run python3 manage.py database create_tables
[2022-09-21 10:29:48,695][PID:544452][INFO][alembic.runtime.migration] Context impl PostgresqlImpl.
[2022-09-21 10:29:48,696][PID:544452][INFO][alembic.runtime.migration] Will assume transactional DDL.
[2022-09-21 10:29:48,714][PID:544452][INFO][alembic.runtime.migration] Running stamp_revision  -> 89bc7873a3e0

安装前端

注:V10开始,使用yarn来替换掉了npm。

package.json中指定了 nodejs版本为12.0.0,npm版本为6.0.0

wget https://nodejs.org/dist/v12.0.0/node-v12.0.0-linux-x64.tar.xz
ln -sf bin/npm ~/bin
ln -sf bin/node ~/bin

安装包

npm install -g [email protected]  --registry=http://registry.npm.taobao.org
npm install --global [email protected] --registry=http://registry.npm.taobao.org
ln -sf bin/yarn ~/bin

yarn使用淘宝镜像:

yarn config set registry http://registry.npm.taobao.org/

下载安装依赖包

npm install --registry=http://registry.npm.taobao.org
yarn --frozen-lockfile
yarn build

最后没过,各种版本node, npm,依赖包的冲突。转而使用镜像方式。

遇到的坑

ENOENT

error An unexpected error occurred: "ENOENT: no such file or directory, lstat '/home/amy/share/redash/redash-10.1.0/node_modules/@redash/viz/node_modules/follow-redirects/node_modules'".

临时解决方案:

手动创建这个路径。

Property 'defaultProps' is used before being assigned

**npm** i --save-dev @types/debug
**npm** i --save-dev @types/enzyme
**npm** i --save-dev @types/jest
**npm** i --save-dev @types/plotly.js
**npm** i --save-dev @types/d3
**npm** i --save-dev @types/d3-cloud
**npm** i --save-dev @types/chroma-js
**npm** i --save-dev @types/numeral
**npm** i --save-dev @types/dompurify
**npm** i --save-dev @types/leaflet

参考

  1. Developer Installation Guide