cube.js 官方爲咱們也提供了backeng 部署的模型,爲了測試方便如下是一個使用docker-compose 運行的demonode
項目是一個集成gitbase 的demo,實際能夠按照本身的項目修改,同時集成了redis cache,gitbase-webmysql
├── README.md ├── cube │ ├── Dockerfile │ ├── index.js │ ├── package.json │ └── schema │ ├── Blobs.js │ ├── CommitBlobs.js │ ├── CommitFiles.js │ ├── CommitPerMonth.js │ ├── CommitTrees.js │ ├── Commits.js │ ├── Committer-Repos.js │ ├── Files.js │ ├── RefCommits.js │ ├── Refs.js │ ├── Remotes.js │ ├── Repositories.js │ ├── TopNCommitters.js │ ├── TopNRepoCommit.js │ └── TreeEntries.js ├── docker-compose-bblfsh.yaml └── docker-compose.yaml
項目中包含了兩個,有一個包含了bblfsh ,主要說明不包含bblfsh的git
version: "3" services: gitbase-web: image: srcd/gitbase-web:latest environment: - "GITBASEPG_DB_CONNECTION=root@tcp(gitbase:3306)/none" ports: - "8080:8080" redis_db: image: redis ports: - "6379:6379" cube: build: ./cube env_file: .env ports: - "4000:4000" volumes: - ./cube/schema:/usr/src/app/schema command: node index.js gitbase: container_name: gitbase hostname: gitbase image: srcd/gitbase:v0.20.0-rc2 volumes: - "./git-demos:/opt/repos" ports: - "3306:3306"
cube 目錄包含了須要的dockerfilegithub
Dockerfile: FROM node:10-alpine LABEL AUTHOR="dalong" LABEL EMAIL="1141591465@qq.com" WORKDIR /usr/src/app COPY package*.json ./ RUN npm install COPY . . EXPOSE 4000
nodejs 項目依賴的npm 包,以及啓動入口web
package.json: { "name": "gitbase-demo", "version": "0.0.1", "private": true, "scripts": { "dev": "./node_modules/.bin/cubejs-dev-server" }, "dependencies": { "@cubejs-backend/mysql-driver": "^0.9.2", "@cubejs-backend/server": "^0.9.2" } } index.js: const CubejsServer = require('@cubejs-backend/server'); const server = new CubejsServer(); server.listen().then(({ port }) => { console.log(`🚀 Cube.js server is listening on ${port}`); });
cube 基於dotenv 進行環境變量管理,使用.env 管理配置redis
REDIS_URL=redis://redis_db:6379/0 CUBEJS_DB_HOST=gitbase CUBEJS_DB_NAME=gitbase CUBEJS_DB_USER=root CUBEJS_DB_TYPE=mysql CUBEJS_API_SECRET=f175c412a9136d6bf6cb84bc59c027f39cc93ae35887774ac3fe091bb0717a8d53409a967a1d2014988ef344e75214d48e0cd65c8b6c9403f8d0850a5545afdd
須要拷貝一些git 代碼到git-demos 目錄,能夠直接clone 幾個開源項目就能夠了,同時對於gitbase 的schema 我已經準備好了 能夠參考 https://github.com/rongfengliang/cube-gitbase-docker-compose/tree/master/cube/schema
docker-compose build
docker-compose up -d
open http://localhost:4000
效果 sql
cube docker-compose 的運行仍是比較簡單,簡答的配置就能夠了,很方便,相似我也提供了一個postgresql 數據庫的docker-compose 項目
cube-pg-docker-composedocker
https://github.com/rongfengliang/cube-gitbase-docker-compose
https://github.com/src-d/gitbase
https://cube.dev/docs/deployment#docker-compose數據庫