Sign inSign up

benyoo/openresty

By benyoo

•Updated 8 days ago

OpenResty 生产镜像 · Ubuntu/Alpine/CentOS · amd64+arm64 · GeoIP2+Brotli+HTTP/3

Image
0

7.9K

benyoo/openresty repository overview

⁠benyoo/openresty

由 Manta [email protected]⁠ 维护的 OpenResty / Lua 镜像。源码与构建矩阵:docker-nginx⁠。

⁠默认入口与版本

latest 对应 benyoo/openresty:alpine3.24-stable-1.31.1.1-20261028。稳定版 1.31.1.1 含固定的 13 项核心安全回补。1.31.8.1 为开发快照,固定源码 101a3ff13f50,使用独立 mainline 通道标签,不作为 latest。

本批使用正式 Dockerfile 增量构建并发布 20261028 新日期标签,包含配置变更事件合并功能。旧 20261026 精确标签保留;移动别名随本次发布更新。各系统的 <系统>-stable / <系统>-mainline 指向对应通道,产品 stable / mainline 指向对应 Alpine 变体。

精确标签架构
ubuntu24.04-mainline-1.31.8.1-20261028amd64
rocky9-mainline-1.31.8.1-20261028amd64 / arm64
centos9-stream-mainline-1.31.8.1-20261028amd64 / arm64
alpine3.24-mainline-1.31.8.1-20261028amd64 / arm64
ubuntu24.04-stable-1.31.1.1-20261028amd64
rocky9-stable-1.31.1.1-20261028amd64 / arm64
centos9-stream-stable-1.31.1.1-20261028amd64 / arm64
alpine3.24-stable-1.31.1.1-20261028amd64 / arm64

⁠基础系统

系统自有基础镜像支持架构
Alpine 3.24benyoo/alpine:3.24.20260615amd64 / arm64
CentOS Stream 9benyoo/centos:9-stream-20260615amd64 / arm64
Rocky Linux 9benyoo/rockylinux:9-20260615amd64 / arm64
Ubuntu 24.04benyoo/ubuntu:24.04-20250807仅 amd64

基础镜像、源码、插件与补丁均锁定摘要。OpenSSL 为 3.5.9;包含 HTTP/2、HTTP/3 / QUIC、Stream、Brotli、GeoIP 模块及动态 subs_filter。OpenResty 提供 Lua / JWT / Session / OIDC 等生态;纯 NGINX 不支持 Lua 配置。默认不打包 IP 数据库或下载凭据,GeoIP 数据通过 /usr/local/geoip 挂载;/data/geoip 保留兼容路径。

⁠启动与持久化

docker run -d --name openresty --restart always \
  -p 80:80 -p 443:443 -p 443:443/udp -p 40080:40080 \
  -e TIMEZONE=Asia/Shanghai -e LOG_RETENTION_DAYS=10 \
  -v /data/wwwroot:/data/wwwroot \
  -v /data/wwwlogs:/data/wwwlogs \
  -v /data/dstw-runtime/openresty:/data/dstw-runtime \
  benyoo/openresty:alpine3.24-stable-1.31.1.1-20261028

自有 NGINX 配置挂载到 /usr/local/nginx/conf,并设置 DEFAULT_CONF=disable;OpenResty 也保留这一业务路径。升级前使用候选镜像对实际配置执行 nginx -t;TLS 旧弱密钥和签名可能不符合 OpenSSL 3.5 安全要求,需先检查证书。

默认 80 与 40080 根路径使用内置静态首页。未传短码时仅初始化空业务目录;启用 DSTW_DEFAULT_INDEX=enable 并传入 DSTW_DEFAULT_INDEX_LABEL=110-35 后,主卡片中部显示一处短码,并先备份、再原子覆盖目标 HTML。DSTW_DEFAULT_INDEX_FILE 可指定目标,默认 /data/wwwroot/index.html。已有文件的内容 SHA、属主、权限和时间保存到 /data/dstw-runtime/default-index/backups;备份失败即停止覆盖,重复生成相同内容不重复备份。

默认首页发送 no-store/Pragma/Expires 防缓存响应,关闭 ETag、条件 304 与文件缓存。持久化 /data/dstw-runtime 保留备份;备份不按日志天数自动删除。自有 vhost 需显式接入默认页 snippet,上游 CDN 也须遵守源站响应头。多节点使用共享业务存储时,带不同短码的生成页须使用各节点独立路径,避免相互覆盖。HTTP/3 仍需要业务 QUIC 配置及 UDP 443 放通。

⁠配置变化合并重载

NGINX_RELOAD_QUIET_SECONDS 默认 2 秒,NGINX_RELOAD_MAX_WAIT_SECONDS 默认 30 秒。首个配置事件后持续收集变化,静默达到阈值或累计等待用尽后只校验并重载一次。两个参数均为无前导零的正整数秒(1~2147483647);最长等待不包括 nginx -t 与发送信号的执行时间。

校验失败不发送 HUP,保留服务并输出中文提示。原监听事件和隐藏路径排除规则不变;Ubuntu 自动使用已有 Bash,Alpine 无 Bash 时使用 BusyBox ash。Supervisor 的 autorestart=true 保证监听进程意外退出后重新启动。环境变量修改后需按原持久化挂载重新创建容器。

⁠镜像分层

系统当前实际层数
Alpine 3.249
CentOS Stream 96
Rocky Linux 96
Ubuntu 24.048

stable/mainline 各支持架构一致。保留运行模块、Lua/Vim/许可证(按产品提供)、原生 logrotate、健康检查及入口配置;压层不代表压缩体积按比例下降。

⁠日志、计划任务与健康检查

  • 按容器时区每天日轮转,默认保留最近 10 天,由 LOG_RETENTION_DAYS 调整,归档延迟一轮压缩。
  • 启动时兼容旧日期归档迁移:先备份,冲突不覆盖,失败可恢复;迁移完成不代表备份自动删除。
  • 持久化 /data/dstw-runtime,保存 cron 任务及维护状态;不同产品/系统使用独立宿主目录。通过 cronctl list/add/remove/reload 管理任务。
  • Supervisor 托管 NGINX、系统原生 cron 与配置 watcher;健康检查同时检查服务、维护状态及 HTTP /health。
  • Docker 自身 stdout 日志需宿主日志驱动限额,独立于业务日轮转;参考仓库 Compose 的 json-file 配置。
docker exec openresty nginx -t
docker exec openresty cronctl list
docker inspect --format '{{json .State.Health}}' openresty
curl -fsS http://127.0.0.1/health

⁠验证边界与资料

本批 16 个系统/版本候选(28 个平台)完成正式 Dockerfile 增量构建、48 组配置监听验证、隔离业务兼容、旧日志迁移、删除重建后的任务持久化、日轮转、健康检查及中文状态恢复验收。arm64 在构建节点使用 QEMU 验证,未替代真机或实际生产配置验收。发布时逐版核验远端 digest、平台与拉取运行;完整记录见源码仓库 docs。未传短码时升级不强制覆盖已有业务首页;显式启用并传码时按前述备份覆盖规则执行。发布不会自动替换生产容器。

使用文档⁠ · 安全与更新⁠。项目未声明统一再许可;NGINX、OpenResty 及各第三方组件遵循各自原始许可证和版权声明。

Tag summary

Content type

Image

Digest

sha256:1a6da0c0f…

Size

85.6 MB

Last updated

8 days ago

docker pull benyoo/openresty