cube.js 學習 cube docker-compose 運行

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
  • 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 項目docker 配置

    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
  • cube nodejs 項目

    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 項目環境變量配置

    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
  • cube web
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數據庫

相關文章
相關標籤/搜索