
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
Neon Local是一个代理服务,为Neon云数据库创建本地接口。它支持两个主要用例:
您的应用连接到本地Postgres端点,而Neon Local负责路由和认证到正确的项目和分支。这消除了在不同数据库分支间工作时更新连接字符串的需求。
更多配置选项请参见文档:Neon Local文档
要连接现有Neon分支,需向容器提供BRANCH_ID环境变量。这允许您使用特定分支而无需创建新分支。
shelldocker run \ --name db \ -p 5432:5432 \ -e NEON_API_KEY=<您的_neon_api_key> \ -e NEON_PROJECT_ID=<您的_neon_project_id> \ -e BRANCH_ID=<您的_branch_id> \ neondatabase/neon_local:latest
yamldb: image: neondatabase/neon_local:latest ports: - '5432:5432' environment: NEON_API_KEY: ${NEON_API_KEY} NEON_PROJECT_ID: ${NEON_PROJECT_ID} BRANCH_ID: ${BRANCH_ID}
要创建临时分支(默认行为),提供PARENT_BRANCH_ID环境变量而非BRANCH_ID。Neon Local容器在启动时自动创建数据库的新临时分支,停止时自动删除。这确保每次通过Docker Compose部署应用时都有一个全新的数据库副本,无需手动清理或编排脚本。数据库分支生命周期直接与Docker环境绑定。
shelldocker run \ --name db \ -p 5432:5432 \ -e NEON_API_KEY=<您的_neon_api_key> \ -e NEON_PROJECT_ID=<您的_neon_project_id> \ -e PARENT_BRANCH_ID=<父_branch_id> \ neondatabase/neon_local:latest
yamldb: image: neondatabase/neon_local:latest ports: - '5432:5432' environment: NEON_API_KEY: ${NEON_API_KEY} NEON_PROJECT_ID: ${NEON_PROJECT_ID} PARENT_BRANCH_ID: ${PARENT_BRANCH_ID}
如果希望跨测试运行保留临时数据库分支,可以禁用自动分支删除并将项目的Git元数据挂载到容器中。Neon Local会自动为您工作的每个Git分支创建对应的Neon数据库分支。
在CI pipeline中使用Neon Local容器,只需执行docker compose up命令即可立即创建并连接到全新的 staging 或测试数据库副本,无需额外自动化(如GitHub Actions)。
使用以下docker run命令运行Neon Local容器:
shelldocker run \ --name db \ -p 5432:5432 \ -e NEON_API_KEY=<您的_neon_api_key> \ -e NEON_PROJECT_ID=<您的_neon_project_id> \ neondatabase/neon_local:latest
将Neon Local添加到docker-compose.yml:
yamldb: image: neondatabase/neon_local:latest ports: - '5432:5432' environment: NEON_API_KEY: ${NEON_API_KEY} NEON_PROJECT_ID: ${NEON_PROJECT_ID}
Neon Local容器支持postgres和Neon serverless驱动。
如果未配置驱动,默认使用postgres。
通过DRIVER环境变量设置驱动:
postgresserverless使用标准Postgres连接字符串连接Neon Local。
shellpostgres://neon:npg@localhost:5432/<数据库名称>?sslmode=no-verify
shellpostgres://neon:npg@db:5432/<数据库名称>?sslmode=no-verify
使用Neon 无服务器驱动连接。
javascriptimport { neon, neonConfig } from '@neondatabase/serverless'; neonConfig.fetchEndpoint = 'http://localhost:5432/sql'; const sql = neon('postgres://neon:npg@localhost:5432/<数据库名称>');
javascriptimport { neon, neonConfig } from '@neondatabase/serverless'; neonConfig.fetchEndpoint = 'http://db:5432/sql'; const sql = neon('postgres://neon:npg@db:5432/<数据库名称>');
使用无服务器驱动时,设置DRIVER=serverless:
shelldocker run \ --name db \ -p 5432:5432 \ -e NEON_API_KEY=<您的_neon_api_key> \ -e NEON_PROJECT_ID=<您的_neon_project_id> \ -e DRIVER=serverless \ neondatabase/neon_local:latest
或在Compose中:
yamldb: image: neondatabase/neon_local:latest ports: - '5432:5432' environment: NEON_API_KEY: ${NEON_API_KEY} NEON_PROJECT_ID: ${NEON_PROJECT_ID} DRIVER: serverless
| 变量名 | 描述 | 是否必需 | 默认值 |
|---|---|---|---|
NEON_API_KEY | 您的Neon API密钥。管理API密钥 | 是 | N/A |
NEON_PROJECT_ID | 您的Neon项目ID。在Neon控制台的项目设置→常规中找到。 | 是 | N/A |
BRANCH_ID | 连接现有Neon分支。与PARENT_BRANCH_ID互斥。 | 否 | N/A |
PARENT_BRANCH_ID | 从父分支创建临时分支。与BRANCH_ID互斥。 | 否 | 项目的默认分支 |
DRIVER | 使用的数据库驱动。选项:postgres、serverless。 | 否 | postgres |
DELETE_BRANCH | 设置为false可在容器关闭后保留分支。 | 否 | true |
要为每个Git分支保留一个分支,添加以下卷挂载:
yamldb: image: neondatabase/neon_local:latest ports: - '5432:5432' environment: NEON_API_KEY: ${NEON_API_KEY} NEON_PROJECT_ID: ${NEON_PROJECT_ID} volumes: - ./.neon_local/:/tmp/.neon_local - ./.git/HEAD:/tmp/.git/HEAD:ro,consistent
注意:这将在项目中创建.neon_local目录以存储元数据。
请务必将.neon_local/添加到.gitignore中,避免提交数据库信息。
如果使用Mac版Docker Desktop,请确保VM设置使用gRPC FUSE而非VirtioFS。
目前VirtioFS存在已知bug,会阻止容器内正确的分支检测和实时更新。
!https://raw.githubusercontent.com/neondatabase-labs/neon_local/refs/heads/main/img/disc.png
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务