
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
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。






探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务