基于 Docker 容器开发
::: danger
为简化使用,容器内的 postgres
用户没有设置密码,仅供体验。如果在生产环境等高安全性需求场合,请务必修改健壮的密码!
:::
在开发机器上下载源代码
从 GitHub 上下载 PolarDB for PostgreSQL 的源代码,稳定分支为 POLARDB_11_STABLE
。如果因网络原因不能稳定访问 GitHub,则可以访问 Gitee 国内镜像。
:::: code-group ::: code-group-item GitHub
git clone -b POLARDB_11_STABLE https://github.com/ApsaraDB/PolarDB-for-PostgreSQL.git
::: ::: code-group-item Gitee 国内镜像
git clone -b POLARDB_11_STABLE https://gitee.com/mirrors/PolarDB-for-PostgreSQL
::: ::::
代码克隆完毕后,进入源码目录:
cd PolarDB-for-PostgreSQL/
拉取开发镜像
从 DockerHub 上拉取 PolarDB for PostgreSQL 的 开发镜像。
# 拉取 PolarDB-PG 开发镜像
docker pull polardb/polardb_pg_devel
创建并运行容器
此时我们已经在开发机器的源码目录中。从开发镜像上创建一个容器,将当前目录作为一个 volume 挂载到容器中,这样可以:
- 在容器内的环境中编译源码
- 在容器外(开发机器上)使用编辑器来查看或修改代码
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 \
bash
进入容器后,为容器内用户获取源码目录的权限,然后编译部署 PolarDB-PG 实例。
# 获取权限并编译部署
cd polardb_pg
sudo chmod -R a+wr ./
sudo chown -R postgres:postgres ./
./polardb_build.sh
# 验证
psql -h 127.0.0.1 -c 'select version();'
version
--------------------------------
PostgreSQL 11.9 (POLARDB 11.9)
(1 row)