
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
https://images.microbadger.com/badges/image/peterevans/nominatim-k8s.svg](https://microbadger.com/images/peterevans/nominatim-k8s) https://circleci.com/gh/peter-evans/nominatim-k8s/tree/master.svg?style=svg](https://circleci.com/gh/peter-evans/nominatim-k8s/tree/master)
https://github.com/openstreetmap/Nominatim 适用于Google Container Engine (GKE) 上的Kubernetes环境。
该Docker镜像及示例Kubernetes配置文件提供了一种持久化Nominatim数据并实现不可变部署的解决方案。
该Docker镜像可独立运行,无需依赖Kubernetes:
bashdocker run -d -p 8080:8080 \ -e NOMINATIM_PBF_URL='http://download.geofabrik.de/asia/maldives-latest.osm.pbf' \ --name nominatim docker.xuanyuan.run/peterevans/nominatim-k8s:latest
通过日志验证数据库是否构建完成及Apache是否正常提供服务:
docker logs -f <容器ID>
之后可访问浏览器地址:http://localhost:8080/
https://github.com/openstreetmap/Nominatim 从PBF文件导入数据到PostgreSQL可能需要超过一小时(针对单个国家)。若部署中的Pod失败,等待新Pod启动可能导致服务中断。
示例Kubernetes文件提供了一种将单个数据库持久化到存储中的方法,供部署中的所有Pod使用。每个Pod拥有独立数据库可避免单点故障,替代方案是维护高可用PostgreSQL集群。
PostgreSQL的数据目录会归档到存储中,并在新Pod启动时恢复。此方法虽简单,但比pg_dump/pg_restore更快,可减少Pod启动时间。
初始部署流程:
更新实时部署以使用新PBF数据:
bash# Google Cloud项目ID及服务账号详情 PROJECT_ID=my-project SA_NAME=my-service-account SA_DISPLAY_NAME="My Service Account" SA_EMAIL=$SA_NAME@$PROJECT_ID.iam.gserviceaccount.com KEY_FILE=service-account-key.json # 创建新的GCP IAM服务账号 gcloud iam service-accounts create $SA_NAME --display-name "$SA_DISPLAY_NAME" # 为服务账号创建并下载新密钥 gcloud iam service-accounts keys create $KEY_FILE --iam-account $SA_EMAIL # 为服务账号授予"Storage Object Viewer"和"Storage Object Creator" IAM角色 gcloud projects add-iam-policy-binding $PROJECT_ID --member serviceAccount:$SA_EMAIL --role roles/storage.objectViewer gcloud projects add-iam-policy-binding $PROJECT_ID --member serviceAccount:$SA_EMAIL --role roles/storage.objectCreator # 创建包含服务账号密钥文件的Secret kubectl create secret generic nominatim-storage-secret --from-file=$KEY_FILE
部署前需编辑金丝雀部署和稳定版部署的env部分:
NOMINATIM_MODE - 从PBF数据CREATE(创建)或从Google StorageRESTORE(恢复)。NOMINATIM_PBF_URL - PBF数据文件的URL(NOMINATIM_MODE=RESTORE时可选)。NOMINATIM_DATA_LABEL - 数据的唯一标识标签,例如maldives-20161213。NOMINATIM_SA_KEY_PATH - JSON服务账号密钥的路径,需与Secret挂载的mountPath匹配。NOMINATIM_PROJECT_ID - Google Cloud项目ID。NOMINATIM_GS_BUCKET - Google Storage存储桶。NOMINATIM_PG_THREADS - PostgreSQL可用线程数,默认值为2。MIT许可证 - 详见LICENSE文件。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务