
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
pgautoupgrade 是一个基于官方 PostgreSQL 镜像(如 postgres:17-alpine)构建的 Docker 容器,核心功能是在启动时自动检测并升级数据库文件。该镜像支持从 PostgreSQL 9.5 及以上版本升级至目标版本,通过 pg_upgrade 工具的 --link 选项实现快速原地升级,并可自动启动数据库服务。主要用途是简化 PostgreSQL 版本升级流程,解决手动升级带来的复杂性和兼容性问题,适用于需要长期维护且需保持数据库版本最新的场景。
pg_upgrade --link 工具,实现原地升级以缩短升级时间。17-alpine)和 Debian(如 17-bookworm)两种基础镜像,支持指定目标 PostgreSQL 版本(如 17、16 等)。根据目标 PostgreSQL 版本及基础系统选择标签:
| 标签格式 | 说明 | 示例 |
|---|---|---|
latest | 最新 PostgreSQL 版本(Alpine 基础) | pgautoupgrade/pgautoupgrade:latest |
X-alpine | 指定版本(Alpine 基础) | pgautoupgrade/pgautoupgrade:17-alpine |
X-bookworm | 指定版本(Debian Bookworm 基础) | pgautoupgrade/pgautoupgrade:17-bookworm |
4.2.1 使用 docker run 启动
bashdocker run -d \ --name pgautoupgrade \ -v /path/to/local/data:/var/lib/postgresql/data \ # 挂载宿主机数据目录 -e POSTGRES_PASSWORD=your_secure_password \ # 数据库管理员密码(必填) -p 5432:5432 \ # 暴露数据库端口 pgautoupgrade/pgautoupgrade:17-alpine # 目标镜像(Alpine 基础)
4.2.2 Docker Compose 配置
yamlversion: '3' services: postgres: image: pgautoupgrade/pgautoupgrade:17-alpine container_name: pgautoupgrade volumes: - postgres_data:/var/lib/postgresql/data # 使用命名卷持久化数据 environment: - POSTGRES_PASSWORD=your_secure_password # 数据库管理员密码(必填) - POSTGRES_USER=postgres # 管理员用户名(默认:postgres) - POSTGRES_DB=postgres # 初始数据库名(默认:postgres) ports: - "5432:5432" # 端口映射 volumes: postgres_data: # 定义命名卷
添加环境变量 PGAUTO_ONESHOT=yes,容器仅执行升级操作,完成后自动退出,不启动数据库服务:
bashdocker run -it \ --name pgauto-upgrade \ -v /path/to/local/data:/var/lib/postgresql/data \ -e POSTGRES_PASSWORD=your_secure_password \ -e PGAUTO_ONESHOT=yes \ pgautoupgrade/pgautoupgrade:17-alpine
默认升级后会重建所有数据库索引(耗时较长),可通过 PGAUTO_REINDEX=no 禁用:
bashdocker run -d \ --name pgautoupgrade \ -v /path/to/local/data:/var/lib/postgresql/data \ -e POSTGRES_PASSWORD=your_secure_password \ -e PGAUTO_REINDEX=no \ pgautoupgrade/pgautoupgrade:17-alpine
postgres:16-bookworm):升级时需选择 Debian 目标镜像(如 17-bookworm),避免跨系统兼容性问题。17-alpine)。Debian 基础镜像部署示例:
bashdocker run -d \ --name pgautoupgrade-debian \ -v /path/to/local/data:/var/lib/postgresql/data \ -e POSTGRES_PASSWORD=your_secure_password \ pgautoupgrade/pgautoupgrade:17-bookworm
| 环境变量名 | 说明 | 取值范围 | 默认值 |
|---|---|---|---|
POSTGRES_PASSWORD | 数据库管理员(postgres 用户)密码,必填项 | 字符串 | 无 |
POSTGRES_USER | 数据库管理员用户名 | 字符串 | postgres |
POSTGRES_DB | 初始数据库名称 | 字符串 | postgres |
PGAUTO_ONESHOT | 是否启用“One shot”模式(仅升级,不启动数据库) | yes/no | no |
PGAUTO_REINDEX | 升级后是否重建所有数据库索引 | yes/no | yes |
重要:本镜像通过 pg_upgrade --link 执行原地升级,若过程中发生错误可能导致数据损坏。升级前必须备份数据库数据目录,确保可恢复。
postgres:16-bookworm)升级时,需选择 Debian 目标镜像(如 17-bookworm),避免跨系统兼容性问题。17-alpine)。本镜像源码托管于 GitHub:https://github.com/pgautoupgrade/docker-pgautoupgrade%EF%BC%8C%E6%AC%A2%E8%BF%8E%E6%8F%90%E4%BA%A4%E5%BB%BA%E8%AE%AE%E3%80%81%E6%8A%A5%E5%91%8A%E9%97%AE%E9%A2%98%E6%88%96%E5%8F%82%E4%B8%8E%E5%BC%80%E5%8F%91%E3%80%82
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务