
johearlc/opengauss本镜像基于 OpenGauss 数据库构建,提供了预配置的数据库环境,支持快速部署并自动完成数据库初始化。通过 docker-compose 配置和初始化脚本,可实现数据库创建、用户管理及 SQL 脚本自动执行,适用于开发、测试环境的数据库快速搭建。
./data:用于数据持久化的目录./initdb.sh:初始化脚本(内容见下方示例)./scripts-db/yunbaasdb/:存放初始化 SQL 文件的目录yamlversion: "3" services: opengauss: image: johearlc/opengauss:custom container_name: opengauss # 容器名称 restart: "no" # 重启策略:不自动重启 user: root # 使用 root 用户运行 ports: - 5432:5432 # 端口映射:宿主机5432 -> 容器5432 volumes: - ./data:/var/lib/opengauss # 数据持久化目录 - ./initdb.sh:/docker-entrypoint-initdb.d/initdb.sh # 初始化脚本挂载 - ./scripts-db/yunbaasdb:/docker-entrypoint-initdb.d/yunbaasdb/ # SQL脚本目录挂载 environment: - TZ=Asia/Shanghai # 时区设置 - GS_PASSWORD=JoHear@1614 # gaussdb 用户密码 - OTHER_PG_CONF=\nsession_timeout = 0\npassword_reuse_time = 0\nfailed_login_attempts = 0 # 自定义数据库配置:会话不超时、密码错误不锁定等 privileged: true # 启用特权模式 networks: - mynetwork # 加入指定网络 networks: mynetwork: external: true # 使用外部网络
| 环境变量 | 说明 |
|---|---|
| TZ | 容器时区设置,如 Asia/Shanghai |
| GS_PASSWORD | 数据库默认用户 gaussdb 的密码 |
| OTHER_PG_CONF | 自定义数据库配置参数,格式为 PostgreSQL 配置项,如会话超时、密码策略等 |
脚本功能:创建数据库、用户,分配权限,并按顺序执行指定目录下的 SQL 文件。
shell#!/usr/bin/env bash GS_USER="" GS_PASSWORD="" GS_DB="" ADMIN_USER="omm" # OpenGauss 管理员用户 # 执行SQL文件的函数 process_sql() { local query_runner=( gsql -v ON_ERROR_STOP=1 --username "$GS_USER" --password "$GS_PASSWORD" --dbname "$GS_DB") echo "Execute SQL: ${query_runner[@]} $@" "${query_runner[@]}" "$@" } # 创建数据库和用户的函数 createDbAndUser() { database=$1 username=$2 password=$3 echo "CREATE database $1 WITH ENCODING 'UTF8'" | gsql -v ON_ERROR_STOP=1 --username ${ADMIN_USER} echo "CREATE USER ${username} WITH PASSWORD '${password}' ;" | gsql --username ${ADMIN_USER} --dbname ${database} echo "ALTER database ${database} owner to ${username};" | gsql --username ${ADMIN_USER} --dbname ${database} echo "ALTER SCHEMA ${username} OWNER TO ${username};" | gsql --username ${ADMIN_USER} --dbname ${database} echo "ALTER ROLE ${username} set search_path = ${username};" | gsql --username ${ADMIN_USER} --dbname ${database} echo "grant all privileges on all tables in schema pg_catalog to ${username};" | gsql --username ${ADMIN_USER} --dbname ${database} } # 创建数据库和用户示例 BAAS_DB=yunbaasdb BAAS_USER=yunbaas createDbAndUser ${BAAS_DB} ${BAAS_USER} Yunbaas@1614 # 创建数据库yunbaasdb和用户yunbaas,密码Yunbaas@1614 # 执行SQL脚本初始化数据 GS_USER=${BAAS_USER} GS_PASSWORD=Yunbaas@1614 GS_DB=${BAAS_DB} process_sql -f /docker-entrypoint-initdb.d/yunbaasdb/1-db_init.sql process_sql -f /docker-entrypoint-initdb.d/yunbaasdb/2-menu_data.sql process_sql -f /docker-entrypoint-initdb.d/yunbaasdb/3-dict_data.sql process_sql -f /docker-entrypoint-initdb.d/yunbaasdb/4-act_data.sql process_sql -f /docker-entrypoint-initdb.d/yunbaasdb/5-tmpl_data.sql process_sql -f /docker-entrypoint-initdb.d/yunbaasdb/6-init_data.sql process_sql -f /docker-entrypoint-initdb.d/yunbaasdb/7-quartz_init.sql
bashdocker-compose up -d
bashdocker ps | grep opengauss
bashgsql -h localhost -p 5432 -U yunbaas -d yunbaasdb -W Yunbaas@1614
./data 目录需确保有读写权限,避免数据持久化失败OTHER_PG_CONF 环境变量中配置项需符合 OpenGauss 配置格式,多个配置项用 \n 分隔
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务