环境优化。该镜像包含完整的 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 镜像,适用于 关系型数据库、复杂查询、数据完整性 等不同场景:
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 版本下载页面。



探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 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 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务