
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
本Docker镜像基于Ubuntu 18.04(Bionic)构建,使用QGIS官方DEB包([***] TCP端口80)或FCGI后端(通过TCP端口9993)运行,用于部署QGIS服务器以提供WMS、WFS和WFS3等地理信息服务。
seccompstatx系统调用支持,通常需要libseccomp >= 2.3.3及内核支持(4.11以上内核)注意:容器仅在Linux主机上测试,其他操作系统未经过测试。更多详情参见https://github.com/gem/oq-qgis-server/issues/1%E3%80%82
容器通过以下方式暴露服务:
docker-compose.yml配置)同时提供了用于FCGI后端的Nginx示例配置:conf/nginx-fcgi-sample.conf。
镜像名称:openquake/qgis-server
QGIS 3.16
stable | 3.16 | stable-ubuntu | 3.16-ubuntuQGIS 3.10 LTR
ltr | 3.10 | ltr-ubuntu | 3.10-ubuntu拉取示例:
bash$ docker pull openquake/qgis-server:ltr
QGIS 3.14
bash$ docker build -t openquake/qgis-server:stable .
QGIS 3.10 LTR
bash$ docker build --build-arg repo=ubuntu-ltr -t openquake/qgis-server:ltr .
可跳过构建步骤,直接从Docker Hub下载容器。
bash$ docker run -v $(pwd)/data:/io/data --name qgis-server -d -p 8010:80 openquake/qgis-server:ltr
服务访问路径
http://localhost:8010/ogc/<project_name>http://localhost:8010/wfs3/<project_name>/ows/(绕过map=<<project_name>重写)可选配置
PostgreSQL连接服务文件
通过PostgreSQL连接服务文件可将连接参数与服务名关联,实现不同环境使用相同QGIS项目。需挂载文件:
bash-v $(pwd)/conf/pg_service.conf:/etc/postgresql-common/pg_service.conf:ro
插件、字体和SVG符号
可从主机向容器暴露以下资源:
插件:
bash-v $(pwd)/plugins:/io/plugins
字体:
bash-v $(pwd)/fonts:/usr/share/fonts
SVG符号:
bash-v $(pwd)/svg:/var/lib/qgis/.local/share/QGIS/QGIS3/profiles/default/svg
完整示例:
bash$ docker run -v $(pwd)/data:/io/data -v $(pwd)/plugins:/io/plugins -v $(pwd)/fonts:/usr/share/fonts --name qgis-server -d -p 8010:80 openquake/qgis-server:ltr
进入容器bash
bash$ docker exec -ti qgis-server /bin/bash
(其中qgis-server为容器名称)
日志和调试
通过docker logs获取QGIS服务器日志:
bash$ docker logs [-f] qgis-server
默认日志级别为warning,可通过环境变量调整:
bash$ docker run -e QGIS_SERVER_LOG_LEVEL=0 -v $(pwd)/data:/io/data -v $(pwd)/plugins:/io/plugins --name qgis-server -d -p 8010:80 openquake/qgis-server:ltr
conf/nginx.conf中的worker数量配置docker-compose.yml中设置主机数据文件夹路径(其中N为QGIS服务器worker数量)bash$ docker-compose up -d --scale qgis-server=N
数据目录(data)
data | |-- <project_name> |-- <project_name>.qgs
可使用https://github.com/gem/oq-consolidate%E5%B7%A5%E5%85%B7%E5%AF%BC%E5%87%BA%E9%80%82%E5%90%88QGIS%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%9A%84%E6%95%B0%E6%8D%AE%EF%BC%88%E6%95%B4%E5%90%88%E9%A1%B9%E7%9B%AE%E5%92%8C%E5%9B%BE%E5%B1%82%EF%BC%89%E3%80%82
插件目录(plugins)
plugins | |-- <plugin_name> |-- <plugin_code>.py |-- metadata.txt |-- __init__.py
字体
自定义字体加载到/usr/share/fonts,容器启动时会运行fc-cache。
Nginx相关
SKIP_NGINX:默认未设置(启动Nginx);若设置为非0或非false值,将不启动内置Nginx,需使用外部反向代理访问FCGI后端QGIS相关
QGIS_SERVER_LOG_LEVEL:默认1(warning)QGIS_SERVER_PARALLEL_RENDERING:默认trueQGIS_SERVER_MAX_THREADS:默认2QGIS_SERVER_WMS_MAX_WIDTH:默认未设置QGIS_SERVER_WMS_MAX_HEIGHT:默认未设置更多详情参见QGIS服务器文档
用户ID自定义
如需向主机卷写入数据,可自定义运行QGIS服务器进程的用户ID:
QGIS_USER:默认nginx,需提供数字ID示例:
bashdocker run -e QGIS_USER=1000 # 或 docker run -e QGIS_USER=$(id -u qgis)
GeoPackages在多进程以rw模式打开时存在兼容性问题。默认情况下,QGIS服务器进程对/io/data没有写权限。若需让QGIS服务器向/io/data写入数据,需确保:
可通过QGIS_USER环境变量自定义QGIS服务器用户。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。


来自真实用户的反馈,见证轩辕镜像的优质服务