美文网首页
grafana 二次开发环境(docker)

grafana 二次开发环境(docker)

作者: 空山晚来秋 | 来源:发表于2021-01-26 15:59 被阅读0次

    背景

    老板拍脑袋决定,让我更改一下grafana的功能项。经过试错之后发现更改并没有想象中的那么简单,于是要进行简单的二次开发

    环境部署

    由于不想在自己的Mac想安装杂乱的开发环境,决定在docker内搞定开发环境。由于我愚钝,未能搞定Goland连接docker 参考链接,退而求其次,使用 docker -w 挂载本地代码到docker中

    1. git clone 自己想要的分支。在此使用的是v6.3.4
    git clone --branch v6.3.4 https://github.com/grafana/grafana.git
    

    若是github克隆太慢,可以使用gitee网站

    git clone --branch v6.3.4 https://gitee.com/mirrors/grafana.git
    
    1. 运行docker。在此使用的是ubuntu:20.04
    docker run -it -p 3000:3000 --name grafana6_test -v /path/go_code/grafana:/root/go/src/github.com/grafana/grafana -w /root/go/src/github.com/grafana/grafana ubuntu:20.04 /bin/bash
    

    进入docker容器之后,需要安装一系列的开发环境

    安装go,vim,wget

    apt install golang
    apt install vim
    apt install wget
    

    配置GOPATH环境变量,并使配置生效

    vim ~/.profile
    # 最后增加一行 
    export GOPATH='/root/go'
    source ~/.profile
    

    安装nvm,并使用nvm安装nodejs。参考GitHub

    nvm是nodejs的版本管理工具,类似于python的pyenv
    若是wget不能下载,可以在浏览器中打开链接,复制代码,在docker中保存为 install.sh,然后使用 bash install.sh 安装

    wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash
    

    然后在~/.profile里增加

    export NVM_DIR="$HOME/.nvm"
    [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
    [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion
    

    安装相对应的nodejs版本。6.3.4对应版本为v10,在此安装v10.23.1。会自动安装npm工具

    nvm install v10.23.1
    

    使用npm安装yarn

    npm install --global yarn
    

    编译和运行

    进入工作目录

    cd /root/go/src/github.com/grafana/grafana
    
    1. 前端环境

    安装相关依赖

    npm install -g node-gyp
    yarn install --pure-lockfile
    

    若是yarn install --pure-lockfile特别慢,可以在 ~/.npmrc添加以下内容

    sass_binary_site = [https://npm.taobao.org/mirrors/node-sass/](https://npm.taobao.org/mirrors/node-sass/)
    phantomjs_cdnurl = [https://npm.taobao.org/mirrors/phantomjs/](https://npm.taobao.org/mirrors/phantomjs/)
    registry = [http://registry.npm.taobao.org](http://registry.npm.taobao.org/)
    

    执行编译

    yarn start
    

    编译完成后,在public文件夹中多了个build文件夹

    编译完成后并不会跳转到输入命令状态,大概会显示

    [Webpack]     + 2995 hidden modules
    [Webpack] No type errors found
    [Webpack] Version: typescript 3.4.1
    [Webpack] Time: 54060ms
    
    1. 后端环境
    go run build.go setup
    go run build.go build
    

    可能会报错

    /root/go/pkg/mod/golang.org/x/xerrors@v0.0.0-20190410155217-1f06c39b4373/adaptor_go1_13.go:16:14: undefined: errors.Frame
    /root/go/pkg/mod/golang.org/x/xerrors@v0.0.0-20190410155217-1f06c39b4373/format_go1_13.go:12:18: undefined: errors.Formatter
    

    需要升级一下xerrors,命令为

    go get -u golang.org/x/xerrors
    

    启动服务

     bin/linux-amd64/grafana-server start
    

    相关文章

      网友评论

          本文标题:grafana 二次开发环境(docker)

          本文链接:https://www.haomeiwen.com/subject/obqgzktx.html