专属域名
文档搜索
轩辕助手
Run助手
邀请有礼
返回顶部
快速返回页面顶部
收起
收起工具栏

dunglas/mercure Docker 镜像 - 轩辕镜像

mercure
dunglas/mercure
Mercure是用于服务器发送实时更新的协议的参考实现
22 收藏0 次下载activedunglas镜像
🚀专业版镜像服务,面向生产环境设计
中文简介版本下载
🚀专业版镜像服务,面向生产环境设计

Mercure 镜像文档

1. 镜像概述和主要用途

Mercure 是一个开源的实时通信解决方案,旨在提供快速、可靠且电池高效的服务器发送实时更新(Server-Sent Events, SSE)能力。作为 WebSocket API 及相关高级库/服务的现代替代品,Mercure 基于 HTTP 和 SSE 协议构建,原生支持现代 Web 浏览器、移动应用及 IoT 设备。其核心用途是为 REST 和 GraphQL API 添加流式和异步通信能力,实现服务器到客户端的实时数据推送。

官方 Docker 镜像 dunglas/mercure 提供了 Mercure 协议参考实现(hub,即服务器)的容器化部署方式,支持生产环境使用,同时提供免费(开源)版本及托管服务选项。

2. 核心功能和特性

  • 实时通信协议:基于 HTTP 和 SSE 构建,轻量且标准化,无需复杂的双工连接管理。
  • 替代 WebSocket:作为 WebSocket 的现代替代品,降低实时通信的实现复杂度和资源消耗。
  • 原生跨平台支持:无需额外客户端库,直接兼容现代浏览器(通过 EventSource API)、移动应用及 IoT 设备。
  • 高效与低功耗:优化电池使用,适合移动设备和资源受限场景(如 IoT)。
  • API 扩展能力:无缝集成 REST 和 GraphQL API,为现有后端服务添加实时更新能力。
  • 可靠性:支持消息重连和恢复,确保更新不丢失(需服务端配置)。
  • 开源与标准化:协议规范为 IETF 互联网草案,参考实现以 AGPL 许可开源,可自由部署和定制。

3. 使用场景和适用范围

  • REST/GraphQL API 实时扩展:为现有 API 添加实时通知、数据更新能力(如社交媒体通知、实时分析数据)。
  • Web 应用实时功能:实现网页实时聊天、实时仪表盘、协作编辑等功能。
  • 移动应用后台更新:为移动应用提供低功耗的实时数据推送(如新闻推送、状态更新)。
  • IoT 设备数据传输:适用于 IoT 设备向中心服务器发送或接收实时数据(如传感器数据流)。
  • 多客户端实时同步:需要保持多客户端状态一致的场景(如多人游戏、实时协作工具)。

4. 使用方法和配置说明

4.1 基本 Docker 部署
4.1.1 使用 docker run 启动

以下命令启动 Mercure hub,监听本地 8080 端口(开发环境配置,生产环境需强化安全设置):

bash
docker run -d \
  -p 8080:8080 \
  -e MERCURE_PUBLISHER_JWT_KEY='your-publisher-secret' \
  -e MERCURE_SUBSCRIBER_JWT_KEY='your-subscriber-secret' \
  -e MERCURE_EXTRA_DIRECTIVES='cors_origins *' \
  -e MERCURE_ALLOW_ANONYMOUS=1 \
  dunglas/mercure
4.1.2 使用 docker-compose 部署

创建 docker-compose.yml 文件,配置持久化、网络及环境变量:

yaml
version: '3.8'

services:
  mercure:
    image: dunglas/mercure
    ports:
      - "8080:8080"  # HTTP 端口(生产环境建议替换为 443 并启用 HTTPS)
    environment:
      - MERCURE_LISTEN_ADDR=:8080
      - MERCURE_PUBLISHER_JWT_KEY=your-secure-publisher-key  # 生产环境使用强密钥
      - MERCURE_SUBSCRIBER_JWT_KEY=your-secure-subscriber-key
      - MERCURE_CORS_ORIGINS=[***]  # 限制允许的前端域名
      - MERCURE_ALLOW_ANONYMOUS=0  # 禁用***订阅
      - MERCURE_DEBUG=0  # 禁用调试模式
    volumes:
      # 挂载 SSL 证书(生产环境启用 HTTPS 时需配置)
      # - ./certs:/etc/mercure/certs
    restart: unless-stopped

启动服务:

bash
docker-compose up -d
4.2 核心环境变量配置

Mercure 镜像通过环境变量进行配置,以下为常用核心配置项(完整列表请参考 官方文档):

环境变量描述默认值
MERCURE_LISTEN_ADDR服务监听地址和端口(如 :8080 表示所有接口的 8080 端口):80
MERCURE_PUBLISHER_JWT_KEY用于验证发布者 JWT 的密钥(HMAC 密钥或 RSA/EC 公钥)无(必填)
MERCURE_SUBSCRIBER_JWT_KEY用于验证订阅者 JWT 的密钥(可与发布者密钥相同)无(必填)
MERCURE_CORS_ORIGINS允许的跨域请求源(逗号分隔,* 表示允许所有,生产环境建议指定具体域名)*
MERCURE_ALLOW_ANONYMOUS是否允许***订阅(0 禁用,1 启用,生产环境建议禁用)0
MERCURE_EXTRA_DIRECTIVES额外的 Nginx 配置指令(如自定义 CORS、缓存策略)无
MERCURE_DEBUG是否启用调试模式(1 启用,0 禁用,生产环境建议禁用)0
4.3 生产环境配置注意事项
  • 安全认证:必须配置强密钥(MERCURE_PUBLISHER_JWT_KEY 和 MERCURE_SUBSCRIBER_JWT_KEY),推荐使用 RSA/EC 密钥对而非 HMAC 密钥。
  • HTTPS 启用:生产环境需通过挂载 SSL 证书(如 Let's Encrypt)并配置 MERCURE_LISTEN_ADDR=:443 启用 HTTPS,避免 SSE 连接被拦截。
  • CORS 限制:MERCURE_CORS_ORIGINS 应指定具体前端域名,而非使用 *,增强安全性。
  • 持久化存储:如需消息持久化(用于重连恢复),可配置外部存储(如 Redis),具体参考官方文档。

5. 许可与版权

Mercure 参考实现(hub)采用 AGPLv3 许可协议,详细条款见 官方许可文档。

6. Credits

  • 由 Kévin Dunglas 创建。
  • 图形设计由 Laury Sorriaux 完成。
  • 由 Les-Tilleuls.coop 赞助开发。
查看更多 mercure 相关镜像 →
dunglas/frankenphp logo
dunglas/frankenphp
by dunglas
基于Caddy的现代PHP应用服务器,支持Early Hints、worker模式、实时功能、自动HTTPS及HTTP/2/3,兼容所有PHP应用,为Symfony项目提供高效集成,也可作为Go库嵌入PHP到net/http应用中。
851M+ pulls
上次更新:7 天前
dunglas/frankenphp-dev logo
dunglas/frankenphp-dev
by dunglas
FrankenPHP的开发版本。
100K+ pulls
上次更新:6 天前
dunglas/vulcain logo
dunglas/vulcain
by dunglas
使用HTTP/2服务器推送创建快速且符合习惯的客户端驱动REST API
2100K+ pulls
上次更新:4 个月前

轩辕镜像配置手册

探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式

登录仓库拉取

通过 Docker 登录认证访问私有仓库

Linux

在 Linux 系统配置镜像服务

Windows/Mac

在 Docker Desktop 配置镜像

Docker Compose

Docker Compose 项目配置

K8s Containerd

Kubernetes 集群配置 Containerd

K3s

K3s 轻量级 Kubernetes 镜像加速

宝塔面板

在宝塔面板一键配置镜像

群晖

Synology 群晖 NAS 配置

飞牛

飞牛 fnOS 系统配置镜像

极空间

极空间 NAS 系统配置服务

爱快路由

爱快 iKuai 路由系统配置

绿联

绿联 NAS 系统配置镜像

威联通

QNAP 威联通 NAS 配置

Podman

Podman 容器引擎配置

Singularity/Apptainer

HPC 科学计算容器配置

其他仓库配置

ghcr、Quay、nvcr 等镜像仓库

专属域名拉取

无需登录使用专属域名

需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单

镜像拉取常见问题

轩辕镜像免费版与专业版有什么区别?

免费版仅支持 Docker Hub 访问,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。

轩辕镜像支持哪些镜像仓库?

专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等;免费版仅支持 docker.io。

流量耗尽错误提示

当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。

410 错误问题

通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。

manifest unknown 错误

先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。

镜像拉取成功后,如何去掉轩辕镜像域名前缀?

使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。

查看全部问题→

用户好评

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

oldzhang的头像

oldzhang

运维工程师

Linux服务器

5

"Docker访问体验非常流畅,大镜像也能快速完成下载。"

轩辕镜像
镜像详情
...
dunglas/mercure
官方博客Docker 镜像使用技巧与技术博客
热门镜像查看热门 Docker 镜像推荐
一键安装一键安装 Docker 并配置镜像源
提交工单
咨询镜像拉取问题请 提交工单,官方技术交流群:13763429
轩辕镜像面向开发者与科研用户,提供开源镜像的搜索和访问支持。所有镜像均来源于原始仓库,本站不存储、不修改、不传播任何镜像内容。
咨询镜像拉取问题请提交工单,官方技术交流群:
轩辕镜像面向开发者与科研用户,提供开源镜像的搜索和访问支持。所有镜像均来源于原始仓库,本站不存储、不修改、不传播任何镜像内容。
官方邮箱:点击复制邮箱
©2024-2026 源码跳动
官方邮箱:点击复制邮箱Copyright © 2024-2026 杭州源码跳动科技有限公司. All rights reserved.
轩辕镜像 官方专业版 Logo
轩辕镜像轩辕镜像官方专业版
首页个人中心搜索镜像

交易
充值流量我的订单
工具
提交工单镜像收录一键安装
Npm 源Pip 源Homebrew 源
帮助
常见问题
其他
关于我们网站地图

官方QQ群: 13763429