如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
环境优化。该镜像包含完整的 PostgreSQL 数据库服务及其工具链,旨在作为 CircleCI 工作流中的次要容器,为应用程序提供可靠的数据库服务支持。
此镜像的主要用途是在 CI 流程中快速部署 PostgreSQL 实例,用于应用程序的集成测试、数据迁移验证等场景,替代了旧版 circleci/postgres 镜像,提供更精简的配置和更贴合 CI 需求的优化。
包含 PostgreSQL 数据库服务器、客户端工具(psql)、备份工具(pg_dump、pg_restore)及配置管理工具,满足数据库操作全流程需求。
提供针对特定场景优化的镜像变体:
PostGIS 变体
在基础 PostgreSQL 镜像上预安装 PostGIS 空间数据库扩展及其依赖(如 GEOS、PROJ、GDAL),适用于地理信息处理场景。通过在标签后添加 -postgis 标识使用,例如 cimg/postgres:13.1-postgis。
RAM 变体(已移除)
旧版 circleci/postgres 镜像提供的 RAM 变体已不再支持。CircleCI 正在评估该变体的实际性能提升效果,未来可能根据社区反馈重新引入。
采用基于 PostgreSQL 版本的标签命名,格式为:
cimg/postgres:<pg-version>
其中 <pg-version> 为具体 PostgreSQL 版本号(如 13.2),确保版本选择清晰可预测。
docker 执行器,需作为次要镜像与主应用镜像配合使用。基础配置
作为次要镜像与主应用镜像配合,示例配置(YAML):
yamljobs: build: docker: - image: cimg/go:1.17 # 主应用镜像(此处以 Go 为例) - image: cimg/postgres:13.2 # PostgreSQL 次要镜像 steps: - checkout # 检出代码 - run: # 测试数据库连接 name: 验证 PostgreSQL 连接 command: | # 安装 psql 客户端(若主镜像未预装) sudo apt-get update && sudo apt-get install -y postgresql-client # 连接数据库(默认用户:postgres,密码:postgres,数据库名:postgres) psql -h localhost -U postgres -d postgres -c "SELECT version();"
使用 PostGIS 变体
配置示例:
yamljobs: build: docker: - image: cimg/python:3.9 - image: cimg/postgres:13.1-postgis # PostGIS 变体 steps: - checkout - run: name: 验证 PostGIS 安装 command: | psql -h localhost -U postgres -d postgres -c "SELECT postgis_version();"
拉取镜像
bashdocker pull cimg/postgres:13.2
启动容器
bashdocker run -d \ -p 5432:5432 \ -e POSTGRES_USER=myuser \ -e POSTGRES_PASSWORD=mypassword \ -e POSTGRES_DB=mydb \ --name pg-test \ cimg/postgres:13.2
环境变量说明:
POSTGRES_USER:默认数据库用户(未指定时为 postgres)。POSTGRES_PASSWORD:用户密码(未指定时为 postgres)。POSTGRES_DB:默认数据库名(未指定时与 POSTGRES_USER 同名)。连接数据库
通过 psql 客户端连接:
bashpsql -h localhost -U myuser -d mydb -p 5432
前提条件
克隆仓库
社区用户(无仓库写入权限)需先 Fork 仓库,再克隆(包含子模块):
bashgit clone --recurse-submodules <你的 Fork 仓库 URL> cd cimg-postgres
生成 Dockerfile
指定 PostgreSQL 版本生成对应 Dockerfile:
bash./shared/gen-dockerfiles.sh 13.2 # 生成 13.2 版本的 Dockerfile
生成的文件位于 ./13.2/Dockerfile。
构建并测试镜像
bashcd 13.2 docker build -t test/postgres:13.2 . # 本地构建镜像 docker run -it test/postgres:13.2 bash # 启动容器并进入交互终端
使用仓库脚本批量构建镜像(需先生成 Dockerfile):
bash./build-images.sh # 构建所有生成的 Dockerfile 对应的镜像
通过 release.sh 脚本自动化发布流程(以版本 9.99 为例):
bash./shared/release.sh 9.99
该脚本会自动:
[release] 标识,触发 CircleCI 构建)./shared 子模块的变更需通过更新子模块同步:
bashcd shared && git pull && cd .. git add shared && git commit -m "更新 shared 子模块以支持 X 功能"
Dockerfile.template 后需重新生成 Dockerfile 并测试。欢迎通过 https://github.com/CircleCI-Public/cimg-postgres/issues 报告 bug 或提出功能请求,或通过 https://github.com/CircleCI-Public/cimg-postgres/pulls 提交代码变更。注意:
本仓库采用 MIT 许可证,详情参见 LICENSE。
本镜像使用了 https://github.com/docker-library/postgres 项目的 docker-entrypoint.sh 脚本。
以下是 cimg/postgres 相关的常用 Docker 镜像,适用于 关系型数据库、复杂查询、数据完整性 等不同场景:
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。



来自真实用户的反馈,见证轩辕镜像的优质服务