清风客栈 - 妖孽同学博客
cloudreve V3编译安装 (centos7)
2020-04-11
查看标签
3001 ℃

构建

Cloudreve 项目主要由两部分组成:后端主仓库 cloudreve/Cloudreve,以及前端仓库 cloudreve/Cloudreve。编译 Cloudreve 后端前,需要先构建assets 目录下的前端子模块,并使用statik嵌入到后端仓库。

环境准备

以下安装全部以centos7为例

参照 Getting Started - The Go Programming Language 安装并配置Go语言开发环境;
https://golang.org/dl/ 以下安装的go环境为1.14.2

cd ~/
#下载二进制包
wget https://dl.google.com/go/go1.14.2.linux-amd64.tar.gz
#将下载的二进制包解压至 /usr/local目录。
tar -C /usr/local -xzf go1.14.2.linux-amd64.tar.gz
#将 /usr/local/go/bin 目录添加至PATH环境变量:
export PATH=$PATH:/usr/local/go/bin

参考 下载 | Node.js 安装 Node.js;
https://nodejs.org/en/download/ 我安装的时候是v12.16.2 cloudreve要求V8以上

#第一步:下载包
curl --silent --location https://rpm.nodesource.com/setup_12.x | sudo bash -
#第二步:安装包
yum install -y nodejs
#第三步:验证安装是否成功
node -v

参考 安装 | Yarn 安装Yarn;

sudo yum install yarn
#运行命令来测试Yarn 是否安装:
yarn --version

执行 go get github.com/rakyll/statik 安装statik 命令行工具;

#记得安装完后回到root目录
cd ~/

开始构建

克隆代码

git clone --recurse-submodules https://github.com/cloudreve/Cloudreve.git

构建静态资源

# 进入cloudreve
cd Cloudreve
# 进入前端子模块
cd assets
# 安装依赖
yarn install
# 开始构建
yarn run build

完成后,所构建的静态资源文件位于 assets/build 目录下。
你可以将此目录改名为statics 目录,放置在 Cloudreve 主程序同级目录下并重启 Cloudreve,Cloudreve 将会使用此目录下的静态资源文件,而非内置的。

嵌入静态资源

# 回到项目主目录
cd ../
# 安装 statik, 用于嵌入静态资源
go get github.com/rakyll/statik
# 开始嵌入
statik -src=assets/build/  -include=*.html,*.js,*.json,*.css,*.png,*.svg,*.ico -f

如果在嵌入时找不到statik 命令,请尝试执行:

export PATH=$PATH:$(go env GOPATH)/bin

编译项目

# 获得当前版本号、Commit ps:如果是por下面部分可以不执行
export COMMIT_SHA=$(git rev-parse --short HEAD)
export VERSION=$(git describe --tags)

# 开始编译
go build -a -o cloudreve -ldflags " -X 'github.com/HFO4/cloudreve/pkg/conf.BackendVersion=$VERSION' -X 'github.com/HFO4/cloudreve/pkg/conf.LastCommit=$COMMIT_SHA'"

首次编译时,Go 会下载相关依赖库,如果您的网络环境不佳,可能会导致这一步速度过慢或者失败。你可以使用 GOPROXY.IO 加快模块下载速度。

编译完成后,会在项目根目录下生成最终的可执行文件cloudreve

本文名称:cloudreve V3编译安装 (centos7)
版权声明:清风客栈发布
hao
April 20th, 2021 at 10:05 pmhao
April 20th, 2021 at 10:05 pm

yarn run build后报错,没有生成资源文件,后面的操作正常。编译后也能运行,只是由于资源文件缺失不能进入页面。能把你编译的assets/build目录发给我试试吗?

访客
doubi
July 26th, 2020 at 12:17 amdoubi
July 26th, 2020 at 12:17 am

方法没用,亲测无效,一堆报错,安装依赖开始。。。。。

访客
September 11th, 2020 at 02:31 am妖孽同学
September 11th, 2020 at 02:31 am
@doubi 

centos7+ ?如果不是centos请使用centos系统 或者自行修改命令适应其他linux系统

博主