跳转至

交付错误与信创切换

记录交付遇到的错误

本页记录了给客户本地化交付的时候遇到的一些错误。

1. suse 15 版本以下且只支持 s390x

docker 官方不支持 suse 15 版本以下且只支持 s390x 。 客户使用旧版 suse 12 系统,测试了下 ce 可以正常使用,最新只有 docker-18.06.3-ce.tgz 。正常系统 docker 不会降低版本,suse 暂时每次只能单独打包。

https://docs.docker.com/engine/install/sles/ https://download.docker.com/linux/static/stable/x86_64/
image-20250717104356204

2. UOS 系统 docker 启动报错

报错信息如下:

OpenBLAS blas_thread_init: pthread_create failed for thread 14 of 16: Operation not permitted
OpenBLAS blas_thread_init: RLIMIT_NPROC -1 current, -max

解决方法:

compose 添加特权容器启动 privileged: true

services:
  postgres:
    image: "${REPO_URL}postgres:15-alpine"
    restart: always
    env_file: .env
    privileged: true

3. 麒麟 v10 docker 启动报错

报错信息如下

docker: Error response from daemon: failed to create shim task: OCI runtime create failed: container_linux.go:318: starting container process caused "permission denied": unknown.

错误原因

container_linux.go:318:启动容器进程导致“权限被拒绝” : 守护进程被 v10 自带的 Podman 进程占用了,卸载掉。

解决方法

yum remove podman

4. arm 版本鲲鹏 920 启动 clickhouse 失败。

错误原因:

鲲鹏 920 是 ARMV8.2 架构的服务器

SSE 4.2
image-20250710190011921 image-20250710190258775

解决办法

降级使用之前的版本

clickhouse/clickhouse-server:23.3.9.55

5. 客户宿主机自定义 dns、compose 启动的容器内部没有使用

报错信息如下:

Name or service not known

错误原因

客户大模型是内部自定义 dns、容器内部没有使用无法访问大模型。

解决方法

添加自定义 dns

- dns:
  - "10.10.0.1"

6. 客户宿主机自定义 host、compose 启动的容器内部没有使用

客户宿主机内网域名解析和上面一样、只是没有 dns、手动修改的 host、compose 启动的容器内部解析不到 host

报错信息如下:

Name or service not known

错误原因

客户服务地址是手动解析的域名、容器内部没有使用。

解决方法

添加自定义解析 extra_hosts

services:
  postgres:
    image: "${REPO_URL}postgres:15-alpine"
    extra_hosts:
      - "text.cn:10.10.0.1"

信创切换

1. valkey 替换 redis

service:
  valkey:
    image: "${REPO_URL}valkey:8-${ARCHITECTURE}"
    restart: always
    env_file: .env
    ports:
      - 6379:6379
    healthcheck:
      test: "valkey-cli -h 127.0.0.1 -a $$REDIS_PASSWORD info Replication"
      interval: 10s
      timeout: 5s
      retries: 3
      start_period: 10s
    command: valkey-server --port 6379 --requirepass ${REDIS_PASSWORD} --save ""

2. tendisplus 代替 redis

https://hub.docker.com/r/tencentdbforkv/tendisplus

services:
  tendisplus:
    image: tencentdbforkv/tendisplus
    container_name: tendisplus
    ports:
      - "51002:51002"  # 端口映射,主机端口:容器端口
    environment:
      - CLUSTER=no  # 启用集群模式
      - REDIS_PASSWORD=tendisplustest  # 设置 Redis 兼容的密码
    restart: unless-stopped  # 除非手动停止,否则总是重启容器
    networks:
      - tendis-network
networks:
  tendis-network:
    driver: bridge  # 使用桥接网络模式

3. rustfs 替换 minio

services:
  rustfs:
    image: "swr.cn-north-9.myhuaweicloud.com/datarc/rustfs:v3.22.1"
    restart: always
    entrypoint: [""]
    ports:
      - "9000:9000"
    environment:
      - RUSTFS_ACCESS_KEY=test              # 设置账户
      - RUSTFS_SECRET_KEY=testtest          # 设置密码
      - RUSTFS_BUCKET=test                  # 设置默认 bucket
      - RUSTFS_CONSOLE_ENABLE=false         # 是否开启 web 访问
    healthcheck:
      test: rustfs --version
      interval: 10s
      timeout: 5s
      retries: 3
    volumes:
      - ./data/rustfs-data:/data
    command: ["/bin/sh", "-c", "mkdir -p /data/${RUSTFS_BUCKET} && /usr/bin/rustfs"]

4. 瀚高(推荐)替换 postgres

https://docs.ivorysql.org/cn/ivorysql-doc/v4.5/v4.5/6#docker%E5%AE%89%E8%A3%85

version: '3.7'
services:
  ivorysql:
    image: ivorysql/ivorysql:4.5-ubi8
    container_name: ivorysql
    ports:
      - 2222:5432
    privileged: true
    volumes:
      - ./ivorysql_data:/var/polardb
    environment:
      TZ: Asia/Shanghai
      IVORYSQL_PASSWORD: '!QAZ2wsx'
      IVORYSQL_USER: 'datarc'
      IVORYSQL_DB: 'ivorysql'
      PGDATA: '/var/lib/ivorysql/data'

5. polardb 替换 postgres

version: '3.7'
services:
  polardb:
    image: polardb/polardb_pg_local_instance:15
    container_name: polardb
    ports:
      - 5555:5432
    privileged: true
    volumes:
      - ./polardb_data:/var/polardb
    environment:
      TZ: Asia/Shanghai
      POLARDB_PASSWORD: '!QAZ2wsx'
      POLARDB_USER: 'datarc'