Centos 7 一键安装Redash (Centos7 + Docker)
最近一段時(shí)間,運(yùn)營找我們要報(bào)表的數(shù)據(jù)頻率越來越高。 我們就使用之前搭建的報(bào)表系統(tǒng)CBoard,讓運(yùn)營自己去導(dǎo)。
用了一段時(shí)間后,運(yùn)營反饋說導(dǎo)大數(shù)據(jù)量的時(shí)候?qū)Р怀鰜?#xff0c;結(jié)果發(fā)現(xiàn)是服務(wù)器超時(shí),經(jīng)過一翻折騰,最多還是只能導(dǎo)六萬多條就報(bào)錯(cuò)了。
不想通過修改java源碼,老大就說再找找其他開源的報(bào)表系統(tǒng)。
最后找到Redash,因?yàn)橐M(jìn)行調(diào)研,研究Redash報(bào)表系統(tǒng)是否滿足我們的要求,就需要進(jìn)行搭建演示系統(tǒng)。
剛開始,想著直接用Centos 7系統(tǒng),直接使用Redash源碼安裝,結(jié)果在搭建Python 3環(huán)境,安裝pip依賴環(huán)境,編譯Redash源碼這幾個(gè)步驟卡了好久,環(huán)境各種報(bào)錯(cuò),各種安裝失敗。
折騰了2天,還是沒搞定環(huán)境。😂😂😂😂😂😂
好吧,我的目的是搭建演示系統(tǒng),進(jìn)行研究。
官方文檔,推薦用Docker。
Centos源碼安裝不來,就放棄直接用Centos7安裝,直接在我Mac電腦上使用Docker鏡像進(jìn)行嘗試。
Mac電腦上的Docker跑起來了,結(jié)果連接不上數(shù)據(jù)庫。
再去看官方文檔,官方文檔推薦Ubuntu+docker,我就用Ubuntu再搭建一個(gè)。
最后,根據(jù)官方文檔的Ubuntu+docker,跑起來了。
隨著之前的研究,對(duì)Redash的認(rèn)識(shí)更深一步了。
我網(wǎng)上找了Centos+Docker的腳本,進(jìn)行了修改,終于可以在Centos上運(yùn)行Redash。
腳本源碼:https://github.com/zakinur/redash/blob/main/setup.sh
執(zhí)行方法:
將源碼保存到~/setup.sh。
在centos 7命令行執(zhí)行:
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# 改成國內(nèi)鏡像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`如果出現(xiàn)中斷退出,可以再執(zhí)行該腳本。
最后執(zhí)行成功如下
總結(jié)
以上是生活随笔為你收集整理的Centos 7 一键安装Redash (Centos7 + Docker)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 蓝桥杯 stm32 RTC实时时钟
- 下一篇: Virtual Box中Centos虚拟