PolarDB for PostgreSQL 基于 Docker 的开发环境搭建指南

PolarDB for PostgreSQL 基于 Docker 的开发环境搭建指南

前言

PolarDB for PostgreSQL 是一款高性能、高可用的云原生数据库系统。对于开发者而言,快速搭建一个本地开发环境至关重要。本文将详细介绍如何使用 Docker 容器技术快速搭建 PolarDB for PostgreSQL 的开发环境,帮助开发者快速上手项目开发。

环境准备

在开始之前,请确保您的开发机器上已经安装了以下软件:

  1. Docker 引擎(建议使用最新稳定版)
  2. Git 版本控制工具

获取源代码

PolarDB for PostgreSQL 的源代码托管在多个代码托管平台上,开发者可以选择从任意一个平台克隆代码:

git clone -b POLARDB_15_STABLE 源码仓库地址
cd PolarDB-for-PostgreSQL/

建议使用 POLARDB_15_STABLE 分支,这是当前最新的稳定版本分支。

获取开发镜像

PolarDB 官方提供了预配置好的开发镜像,包含了编译和运行 PolarDB 所需的所有依赖项。开发者可以从以下两个镜像仓库获取:

  1. 官方 Docker 镜像仓库
  2. 阿里云容器镜像服务

推荐使用基于 Ubuntu 24.04 的镜像版本,执行以下命令拉取镜像:

docker pull polardb/polardb_pg_devel:ubuntu24.04

创建开发容器

为了便于开发,我们需要创建一个 Docker 容器并将本地源代码目录挂载到容器中。这样做的好处是:

  1. 可以在容器内进行编译和测试
  2. 可以在宿主机上使用熟悉的 IDE 编辑代码

执行以下命令创建并进入开发容器:

docker run -it \
    -v $PWD:/home/postgres/polardb_pg \
    --shm-size=512m --cap-add=SYS_PTRACE --privileged=true \
    --name polardb_pg_devel \
    polardb/polardb_pg_devel:ubuntu24.04 \
    bash

参数说明:

  • -v $PWD:/home/postgres/polardb_pg:将当前目录挂载到容器的 /home/postgres/polardb_pg 目录
  • --shm-size=512m:设置共享内存大小
  • --cap-add=SYS_PTRACE:添加系统权限
  • --privileged=true:赋予容器特权

配置与编译

进入容器后,需要设置正确的文件权限,然后才能开始编译:

cd polardb_pg
sudo chmod -R a+wr ./
sudo chown -R postgres:postgres ./

基本编译命令

最简单的编译方式是直接运行构建脚本:

./build.sh

这将编译并启动一个单节点的 PolarDB for PostgreSQL 实例。

验证安装

编译完成后,可以通过以下命令验证安装是否成功:

psql -c 'SELECT version();'

如果安装成功,将显示 PolarDB 的版本信息。

高级编译选项

PolarDB 提供了多种编译选项,支持不同形态的集群部署:

1. 共享存储集群

要部署一个 Primary 节点加两个 Replica 节点的共享存储集群:

./build.sh --wr=2

2. 主备集群

要部署一个 Primary 节点、一个 Replica 节点和一个 Standby 节点的集群:

./build.sh --wr=1 --ws=1

3. 自定义端口

指定 Primary 节点的端口号:

./build.sh --port=5433

4. 调试模式

编译 Debug 版本:

./build.sh --debug=on

5. 仅编译不启动

如果只需要编译而不启动集群:

./build.sh --ni

回归测试

PolarDB 提供了完善的回归测试套件,开发者可以在不同模式下运行测试:

Debug 模式测试

./build.sh --ws=1 --wr=2 --debug=on --jobs=4 --ec="--enable-tap-tests"
make precheck -j4

Release 模式测试

./build.sh --ws=1 --wr=2 --debug=off --jobs=4 --ec="--enable-tap-tests"
make precheck -j4

其中 --jobs 参数可以根据机器 CPU 核心数进行调整,建议设置为 CPU 核心数的 1-2 倍。

开发建议

  1. 代码编辑:建议在宿主机上使用专业 IDE 编辑代码,利用 Docker 容器的挂载功能实现代码同步
  2. 资源分配:根据项目规模适当调整 Docker 容器的 CPU 和内存资源
  3. 版本控制:频繁提交代码,利用 Git 的分支功能进行功能开发
  4. 测试驱动:在修改代码前先运行相关测试用例,确保修改不会引入回归问题

常见问题解决

  1. 权限问题:如果遇到文件权限错误,重新运行 chmodchown 命令
  2. 编译失败:检查是否安装了所有依赖项,开发镜像已经包含了所有必要依赖
  3. 测试失败:确认测试环境配置正确,特别是共享内存大小设置

总结

通过本文介绍的方法,开发者可以快速搭建 PolarDB for PostgreSQL 的开发环境,并灵活配置不同形态的数据库集群进行开发和测试。Docker 容器化开发方式大大简化了环境配置的复杂度,使开发者能够专注于数据库核心功能的开发与优化。

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

诸锬泽Jemima

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值