
如果你使用 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://img.shields.io/github/license/justb4/docker-mapserver !https://img.shields.io/github/release/justb4/docker-mapserver.svg !https://img.shields.io/docker/pulls/justb4/mapserver.svg
使用Lighttpd的灵感主要来自:https://github.com/PDOK/mapserver-docker
dockerdocker build -t justb4/mapserver . docker run -e MAPSERVER_CONFIG_FILE=/opt/mapserver/mapserver.conf --rm -d -p 8001:80 --name mapserver-example -v `pwd`/example:/opt/mapserver justb4/mapserver docker stop mapserver-example
或使用更简洁的docker compose:
docker compose up --build [-d]
在浏览器中打开example/index.html查看图层(包含热图)。
也可从DockerHub拉取镜像:https://hub.docker.com/repository/docker/justb4/mapserver
版本标签遵循MapServer版本,后缀为Docker镜像版本,例如7.6.0-1。
本项目旨在满足以下需求:
关于第3点:许多MapServer Docker镜像使用多阶段构建,但这在扩展镜像(如安装MapScript)时容易出现问题(如段错误)。
关于第1和2点:许多MapServer镜像基于Ubuntu和Apache,体积较大;使用Debian的-slim版本可减小体积,Lighttpd是支持FastCGI的轻量级HTTP服务器。
关于第4点:许多镜像通过Make全量构建MapServer及其依赖,虽然可控性强,但apt-get install cgi-mapserver已能满足大多数需求。
本镜像的主要动机是支持https://github.com/justb4/mapglow%EF%BC%8CMapServer%E7%8E%B0%E5%9C%A8%E5%B7%B2%E5%8E%9F%E7%94%9F%E6%94%AF%E6%8C%81%E7%83%AD%E5%9B%BE%E7%94%9F%E6%88%90%EF%BC%88%E7%A7%B0%E4%B8%BAKernel Density Estimation),示例包含在example/index.html中,直接在浏览器打开即可查看。
!热图示例
该镜像将创建一个基于Lighttpd运行的MapServer应用,修复了map=...查询字符串的问题(移除MAP查询参数)。
镜像为单阶段构建,未压缩体积约300MB。
docker build -t justb4/mapserver . 或 ./build.sh
MapServer 8.0.0开始大幅改变了配置约定(详见文档)。8.0.0前版本(如7.x)只需设置MS_MAPFILE指向.map文件,而8.0.0使用全局.conf文件,需通过环境变量MAPSERVER_CONFIG_FILE指定。示例配置文件见example/mapserver.conf和example/example.map,MAPSERVER_CONFIG_FILE的使用可参考docker compose文件及以下示例。
镜像可直接从命令行运行,需将Docker卷挂载到容器的/opt/mapserver目录,挂载的卷需至少包含一个MapServer *.map文件,文件名决定服务的URL路径。
dockerdocker run -e MAPSERVER_CONFIG_FILE=/opt/mapserver/mapserver.conf -d -p 8081:80 --name mapserver-example -v `pwd`/example:/opt/mapserver justb4/mapserver
运行上述示例后,服务将在以下URL可用:
http://localhost:8081/?request=getcapabilities&service=wms
可设置的环境变量如下:
envDEBUG MIN_PROCS MAX_PROCS MAX_LOAD_PER_PROC IDLE_TIMEOUT MAPSERVER_CONFIG_FILE PROJ_LIB
除MAPSERVER_CONFIG_FILE外,其他环境变量在Dockerfile中均有默认值。
容器启动后将在以下端点提供WMS和WFS服务:
http://localhost:8081?
可使用不同端口映射(或在Traefik等代理前无需映射)。
htmlhttp://localhost:8081/?request=GetFeature&service=wfs&VERSION=2.0.0&typename=example:polygons&count=1 http://localhost:8081/?request=GetFeature&service=wfs&VERSION=2.0.0&typename=example:points&count=10
htmlhttp://localhost:8081/?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&BBOX=50,2,54,9&CRS=EPSG:4326&WIDTH=905&HEIGHT=517&LAYERS=polygons&STYLES=&FORMAT=image/png&DPI=96&MAP_RESOLUTION=96&FORMAT_OPTIONS=dpi:96&TRANSPARENT=TRUE http://localhost:8081/?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&BBOX=51,4,53,5&CRS=EPSG:4326&WIDTH=905&HEIGHT=517&LAYERS=points&STYLES=&FORMAT=image/png&DPI=96&MAP_RESOLUTION=96&FORMAT_OPTIONS=dpi:96&TRANSPARENT=TRUE
htmlhttp://localhost:8081/?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetFeatureInfo&BBOX=48.9306039592783506,0.48758765231731171,55.46504193821721884,12.33319204541738756&CRS=EPSG:4326&WIDTH=1530&HEIGHT=844&LAYERS=polygons&STYLES=&FORMAT=image/png&QUERY_LAYERS=polygons&INFO_FORMAT=text/html&I=389&J=537&FEATURE_COUNT=10
Lighttpd以单进程运行,且无需复杂路由配置(由Kubernetes或Traefik等基础设施处理),若需简单路由仍可在lighttpd.conf中配置。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务