Skip to content

OpenTenBase/OpenTenBase-DevEnv

Repository files navigation

OpenTenBase 开发环境

基于 Docker 的 OpenTenBase 开发环境,提供开箱即用的集群和完整的开发工具链。

Quick Start

如果你只想快速体验 OpenTenBase,无需编译,可直接使用以下预配置的集群:

分支 说明 架构
example-distributed 分布式集群 1 GTM + 1 CN + 2 DN
example-centralized 集中式实例 单节点
# 切换到示例分支
git checkout example-distributed  # 分布式集群
#
git checkout example-centralized   # 集中式实例

# 启动集群
./otb-dev.sh build
./otb-dev.sh up

# 连接数据库
./otb-dev.sh enter
psql -h 172.20.0.3 -p 11000 -U opentenbase postgres

开发环境(当前分支)

从源码编译 OpenTenBase:

# 构建并启动(预配置模式)
./otb-dev.sh up

# 进入容器
./otb-dev.sh enter

# 容器内直接编译
make -j$(nproc)
make install

使用模式

1. 预配置模式(默认)

在 Docker build 阶段自动执行 configure,可直接尝试编译:

./otb-dev.sh up
./otb-dev.sh enter
make -j$(nproc)
make install

2. 基础模式

不执行 configure,可完整体验手动编译流程:

./otb-dev.sh up base
./otb-dev.sh enter
./configure --prefix=$INSTALL_PATH/opentenbase_bin_v5.0 \
    --enable-user-switch \
    --with-libxml \
    --disable-license \
    --with-openssl \
    --with-ossp-uuid \
    CFLAGS="-g"
make -j$(nproc)
make install

离线安装支持

本项目提供 Docker 离线安装包下载工具,支持在无网络环境下部署 Docker。`

  1. docker-offline-packages 目录拷贝到目标机器

  2. 在离线机器上安装:

    # Debian/Ubuntu
    cd docker-offline-packages
    sudo ./install-deb.sh ./ubuntu-22.04
    
    # CentOS/RHEL
    sudo ./install-rpm.sh ./centos-7
    
    # 启动 Docker
    sudo systemctl start docker
    sudo systemctl enable docker

常用命令

命令 说明
./otb-dev.sh up 启动容器(预配置模式)
./otb-dev.sh up base 启动容器(基础模式)
./otb-dev.sh enter 进入容器
./otb-dev.sh build 构建镜像
./otb-dev.sh down 停止并删除容器
./otb-dev.sh status 查看状态
./otb-dev.sh export 导出镜像

环境变量

变量
SOURCECODE_PATH /data/opentenbase/OpenTenBase
INSTALL_PATH /data/opentenbase/install
PG_HOME /data/opentenbase/install/opentenbase_bin_v5.0

镜像导出/导入

# 导出镜像
./otb-dev.sh export

# 使用 zstd 格式(更快)
./otb-dev.sh export-zstd

# 导入镜像
./otb-dev.sh import

故障排除

# 清理缓存后重建
docker system prune -f
./otb-dev.sh rebuild

# 查看容器日志
./otb-dev.sh logs

About

Docker-based development environment for OpenTenBase

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages