CircleCI便捷镜像,集成PostgreSQL数据库,用于CI/CD流程中快速部署和运行PostgreSQL相关的测试及开发任务,简化配置。
收藏数: 9
下载次数: 564251575
类型:
cimg/postgres环境优化。该镜像包含完整的 PostgreSQL 数据库服务及其工具链,旨在作为 CircleCI 工作流中的次要容器,为应用程序提供可靠的数据库服务支持。
此镜像的主要用途是在 CI 流程中快速部署 PostgreSQL 实例,用于应用程序的集成测试、数据迁移验证等场景,替代了旧版 circleci/postgres 镜像,提供更精简的配置和更贴合 CI 需求的优化。
包含 PostgreSQL 数据库服务器、客户端工具(psql)、备份工具(pg_dump、pg_restore)及配置管理工具,满足数据库操作全流程需求。
提供针对特定场景优化的镜像变体:
在基础 PostgreSQL 镜像上预安装 PostGIS 空间数据库扩展及其依赖(如 GEOS、PROJ、GDAL),适用于地理信息处理场景。通过在标签后添加 -postgis 标识使用,例如 cimg/postgres:13.1-postgis。
旧版 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();"
配置示例:
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
指定 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 并测试。欢迎通过 GitHub Issues 报告 bug 或提出功能请求,或通过 Pull Requests 提交代码变更。注意:
本仓库采用 MIT 许可证,详情参见 LICENSE。
本镜像使用了 docker-library/postgres 项目的 docker-entrypoint.sh 脚本。
以下是 cimg/postgres 相关的常用 Docker 镜像,适用于 关系型数据库、复杂查询、数据完整性 等不同场景:
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 版本下载页面。



manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务