Centos 7 一键安装Redash (Centos7 + Docker)
最近一段時間,運營找我們要報表的數據頻率越來越高。 我們就使用之前搭建的報表系統CBoard,讓運營自己去導。
用了一段時間后,運營反饋說導大數據量的時候導不出來,結果發現是服務器超時,經過一翻折騰,最多還是只能導六萬多條就報錯了。
不想通過修改java源碼,老大就說再找找其他開源的報表系統。
最后找到Redash,因為要進行調研,研究Redash報表系統是否滿足我們的要求,就需要進行搭建演示系統。
剛開始,想著直接用Centos 7系統,直接使用Redash源碼安裝,結果在搭建Python 3環境,安裝pip依賴環境,編譯Redash源碼這幾個步驟卡了好久,環境各種報錯,各種安裝失敗。
折騰了2天,還是沒搞定環境。😂😂😂😂😂😂
好吧,我的目的是搭建演示系統,進行研究。
官方文檔,推薦用Docker。
Centos源碼安裝不來,就放棄直接用Centos7安裝,直接在我Mac電腦上使用Docker鏡像進行嘗試。
Mac電腦上的Docker跑起來了,結果連接不上數據庫。
再去看官方文檔,官方文檔推薦Ubuntu+docker,我就用Ubuntu再搭建一個。
最后,根據官方文檔的Ubuntu+docker,跑起來了。
隨著之前的研究,對Redash的認識更深一步了。
我網上找了Centos+Docker的腳本,進行了修改,終于可以在Centos上運行Redash。
腳本源碼:https://github.com/zakinur/redash/blob/main/setup.sh
執行方法:
將源碼保存到~/setup.sh。
在centos 7命令行執行:
source ~/setup.sh源碼
#!/usr/bin/env bash # This script sets up dockerized Redash on CentOS 7set -uREDASH_BASE_PATH=/opt/redash COMPOSE_PATH=/usr/local/bin/docker-compose COMPOSE_VERSION="1.25.5"distro=centos7install_docker(){# Install Dockersudo yum -y updatesudo yum -y install https://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpmsudo curl -L -o /etc/yum.repos.d/docker-ce.repo https://download.docker.com/linux/centos/docker-ce.reposudo chown root:root /etc/yum.repos.d/docker-ce.reposudo restorecon -Fv /etc/yum.repos.d/docker-ce.reposudo yum -y install docker-ce pwgen yajlsudo systemctl start docker# Install Docker Compose#sudo curl -L https://github.com/docker/compose/releases/download/${COMPOSE_VERSION}/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose# 改成國內鏡像sudo curl -L https://get.daocloud.io/docker/compose/releases/download/${COMPOSE_VERSION}/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-composesudo chmod +x ${COMPOSE_PATH}sudo restorecon -Fv ${COMPOSE_PATH}# Allow current user to run Docker commandssudo usermod -aG docker $USER }create_directories() {if [[ ! -e $REDASH_BASE_PATH ]]; thensudo mkdir -p $REDASH_BASE_PATHsudo chown $USER:$USER $REDASH_BASE_PATHfiif [[ ! -e $REDASH_BASE_PATH/postgres-data ]]; thenmkdir $REDASH_BASE_PATH/postgres-datafi }create_config() {if [[ -e $REDASH_BASE_PATH/env ]]; thenrm $REDASH_BASE_PATH/envtouch $REDASH_BASE_PATH/envfiCOOKIE_SECRET=$(pwgen -1s 32)SECRET_KEY=$(pwgen -1s 32)POSTGRES_PASSWORD=$(pwgen -1s 32)REDASH_DATABASE_URL="postgresql://postgres:${POSTGRES_PASSWORD}@postgres/postgres"echo "PYTHONUNBUFFERED=0" >> $REDASH_BASE_PATH/envecho "REDASH_LOG_LEVEL=INFO" >> $REDASH_BASE_PATH/envecho "REDASH_REDIS_URL=redis://redis:6379/0" >> $REDASH_BASE_PATH/envecho "POSTGRES_PASSWORD=$POSTGRES_PASSWORD" >> $REDASH_BASE_PATH/envecho "REDASH_COOKIE_SECRET=$COOKIE_SECRET" >> $REDASH_BASE_PATH/envecho "REDASH_SECRET_KEY=$SECRET_KEY" >> $REDASH_BASE_PATH/envecho "REDASH_DATABASE_URL=$REDASH_DATABASE_URL" >> $REDASH_BASE_PATH/env }setup_compose() {REQUESTED_CHANNEL=stableLATEST_VERSION=`curl -s "https://version.redash.io/api/releases?channel=$REQUESTED_CHANNEL" | json_reformat | grep "docker_image" | head -n 1 | awk 'BEGIN{FS=":"}{print $3}' | awk 'BEGIN{FS="\""}{print $1}'`cd $REDASH_BASE_PATHGIT_BRANCH="${REDASH_BRANCH:-master}" # Default branch/version to master if not specified in REDASH_BRANCH env varwget https://raw.githubusercontent.com/getredash/setup/${GIT_BRANCH}/data/docker-compose.ymlsed -ri "s/image: redash\/redash:([A-Za-z0-9.-]*)/image: redash\/redash:$LATEST_VERSION/" docker-compose.ymlecho "export COMPOSE_PROJECT_NAME=redash" >> ~/.profileecho "export COMPOSE_PROJECT_NAME=redash" >> ~/.bashrcecho "export COMPOSE_FILE=/opt/redash/docker-compose.yml" >> ~/.profileecho "export COMPOSE_FILE=/opt/redash/docker-compose.yml" >> ~/.bashrcexport COMPOSE_PROJECT_NAME=redashexport COMPOSE_FILE=/opt/redash/docker-compose.yml/usr/local/bin/docker-compose run --rm server create_db/usr/local/bin/docker-compose up -d }install_docker create_directories create_config setup_compose# Make the new docker user group effective, so the user doesn't need to re-login exec sg docker newgrp `id -gn`如果出現中斷退出,可以再執行該腳本。
最后執行成功如下
總結
以上是生活随笔為你收集整理的Centos 7 一键安装Redash (Centos7 + Docker)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 蓝桥杯 stm32 RTC实时时钟
- 下一篇: 基于zynq的千兆网udp项目_一种基于