Docker容器中部署KingbaseES与Python开发环境

在Docker容器中部署KingbaseES数据库与Python开发环境,需遵循以下结构化步骤:


1. 基础镜像准备

选择官方基础镜像并更新系统:

FROM ubuntu:22.04
RUN apt-get update && apt-get install -y \
    wget \
    gnupg \
    python3.10 \
    python3-pip \
    libpq-dev  # KingbaseES依赖库


2. 安装KingbaseES

2.1 下载安装包

人大金仓官网获取安装包(需授权):

RUN wget https://example.com/kingbase-v8.6.tar.gz -P /tmp

2.2 解压与安装
RUN tar -xzvf /tmp/kingbase-v8.6.tar.gz -C /opt && \
    cd /opt/kingbase && \
    ./setup.sh --mode unattended  # 静默安装

2.3 配置环境变量
ENV KINGBASE_HOME=/opt/kingbase
ENV PATH=$KINGBASE_HOME/bin:$PATH


3. 配置Python环境

3.1 安装依赖库
RUN pip install \
    pandas \
    sqlalchemy \
    psycopg2-binary  # KingbaseES兼容PostgreSQL协议

3.2 添加Python连接驱动

创建requirements.txt

kingbase-python-driver==1.0.0  # 官方Python驱动


4. 容器启动脚本

创建start.sh初始化服务:

#!/bin/bash
# 启动KingbaseES
$KINGBASE_HOME/bin/sys_ctl start -D $KINGBASE_HOME/data

# 初始化Python环境
python3 -m venv /app/venv
source /app/venv/bin/activate

# 保持容器运行
tail -f /dev/null

赋予执行权限:

RUN chmod +x /start.sh
CMD ["/start.sh"]


5. 数据库连接测试

Python测试脚本test_connection.py

import sqlalchemy
engine = sqlalchemy.create_engine(
    "kingbase+psycopg2://user:password@localhost:54321/testdb"
)
with engine.connect() as conn:
    result = conn.execute("SELECT version()")
    print(f"KingbaseES版本: {result.fetchone()[0]}")


6. Docker构建与运行

# 构建镜像
docker build -t kingbase-python .

# 启动容器(映射端口54321)
docker run -d -p 54321:54321 --name kingbase_dev kingbase-python

# 执行测试
docker exec kingbase_dev python3 test_connection.py


关键注意事项

  1. 数据持久化
    挂载数据卷避免数据丢失:

    docker run -v kingbase_data:/opt/kingbase/data ...
    

  2. 安全配置

    • sys_hba.conf中设置IP白名单
    • 通过环境变量注入密码(避免硬编码)
  3. 性能优化
    kingbase.conf中调整:

    shared_buffers = 1GB
    work_mem = 64MB
    

完整项目示例见:GitHub示例仓库
实际部署前需确认KingbaseES授权许可及版本兼容性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值