grafana 二次开发环境(docker)

背景

老板拍脑袋决定,让我更改一下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/[email protected]/adaptor_go1_13.go:16:14: undefined: errors.Frame
/root/go/pkg/mod/golang.org/x/[email protected]/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))