admin

docker build opengauss5.0.0支持中文

admin docker技术 2025-06-28 127浏览 0

问题:

openGauss=# CREATE DATABASE mydb OWNER db_creator TEMPLATE template0 ENCODING 'UTF8' LC_COLLATE 'zh_CN.utf8' LC_CTYPE 'zh_CN.utf8' CONNECTION LIMIT 50; ERROR:  invalid locale name: "zh_CN.utf8" 用docker-compose安装了opengauss5.0.0 ,但是创建数据库时,无法使用中文字符编码,如何解决

自定义 Docker 镜像(推荐)

  1. 创建一个 Dockerfile 来安装中文 locale:

1. 创建 Dockerfile

新建一个文件名为 Dockerfile 的文件,内容如下:

# 基于官方 OpenGauss 5.0.0 镜像
FROM enmotech/opengauss:5.0.0

# 安装必要的工具和中文 locale
RUN apt-get update && \
    apt-get install -y locales && \
    sed -i '/zh_CN.UTF-8/s/^# //g' /etc/locale.gen && \
    locale-gen zh_CN.UTF-8 && \
    update-locale.UTF-8

# 设置环境变量
ENV LANG zh_CN.UTF-8
ENV LC_ALL zh_CN.UTF-8

2. 构建镜像

在包含 Dockerfile 的目录下运行以下命令:

docker build -t opengauss-zh:5.0.0 .

3. 修改 docker-compose.yml

更新你的 docker-compose.yml 文件以使用新镜像:

services:
  opengauss:
    image: opengauss-zh:5.0.0
    container_name: opengauss
    environment:
      - GS_PASSWORD=YourPassword123
    ports:
      - "5432:5432"
    volumes:
      - opengauss_data:/var/lib/opengauss
    restart: always
volumes:
  opengauss_data:


4. 启动容器

docker-compose up -d

5. 验证中文 locale 支持

进入容器并检查可用的 locale:

docker exec -it opengauss locale -a

你应该能看到 zh_CN.utf8 或 zh_CN.UTF-8 在列表中。

6. 创建支持中文排序的数据库

现在你可以成功创建使用中文 locale 的数据库了:

版权声明

本站《作品展示》类文章均为原创,转载必须注明出处,技术分享类文章部分来源于网络,版权归原作者所有,若侵权请留言。