
garfieldwtf/openrestydocker-openresty是OpenResty的Docker工具集。Docker是容器管理平台,而OpenResty是一个全功能Web应用服务器,它捆绑了标准NGINX核心、众多第三方NGINX模块及其外部依赖。本镜像提供了多架构支持(amd64、aarch64、s390x)和多种操作系统版本,适用于快速部署基于NGINX和LuaJIT的高性能Web应用。
建议将镜像固定到明确的标签。以下是常见标签示例及说明:
| 镜像 | 描述 |
|---|---|
| openresty/openresty:1.21.4.1-0-jammy | 基于源码构建的Ubuntu Jammy版本 |
| openresty/openresty:1.21.4.1-0-focal | 基于源码构建的Ubuntu Focal版本 |
| openresty/openresty:1.21.4.1-0-bullseye-fat | 基于上游Debian Bullseye构建的版本 |
| openresty/openresty:1.21.4.1-0-alpine | 基于源码构建的Alpine版本 |
| openresty/openresty:1.21.4.1-0-alpine-apk | 基于上游Alpine构建的版本 |
以下是未指定版本的标签示例(仅作参考):
| 镜像 | 描述 |
|---|---|
| openresty/openresty:jammy | 最新的Ubuntu Jammy版本 |
| openresty/openresty:focal | 最新的Ubuntu Focal版本 |
| openresty/openresty:alpine | 最新的Alpine版本 |
基于上游OpenResty包构建的"flavors":
基于源码构建的"flavors"(适用于高级自定义场景):
openresty/openresty:latest标签指向最新的bullseye镜像。自1.19.3.2-1版本起,所有flavors支持amd64和aarch64多架构构建;自1.21.4.1-1版本起,基于源码构建的Ubuntu flavors(如jammy)支持s390x架构(禁用PCRE JIT)。
若接受构建默认值,可直接使用Docker Hub上的openresty镜像:
bashdocker run [options] openresty/openresty:bullseye-fat
[options]包括端口映射(-p)、卷挂载(-v)、后台运行(-d)等参数。
docker-openresty会将/usr/local/openresty/nginx/logs/access.log和error.log符号链接到/dev/stdout和/dev/stderr,以确保Docker日志正常工作。若修改nginx.conf中的日志路径,需对新路径创建符号链接(Windows镜像不支持此功能)。
临时目录(如client_body_temp_path)存储在/var/run/openresty/,建议挂载此目录而非使用容器本地目录(Windows镜像不支持)。
Docker工具会安装默认的nginx.conf。可通过自定义Dockerfile或卷挂载覆盖该文件。
Linux镜像的nginx.conf包含指令include /etc/nginx/conf.d/*.conf;,因此该目录下的所有配置都会被包含。默认虚拟主机配置位于/etc/nginx/conf.d/default.conf。
可直接覆盖default.conf或挂载整个conf.d目录:
bashdocker run -v /my/custom/conf.d:/etc/nginx/conf.d openresty/openresty:alpine
在selinux主机(如CentOS)上,需添加:Z到卷挂载参数:
bashdocker run -v /my/custom/conf.d:/etc/nginx/conf.d:Z openresty/openresty:alpine
Windows镜像需直接修改主配置文件:
bashdocker run -v C:/my/custom/nginx.conf:C:/openresty/conf/nginx.conf openresty/openresty:windows
从1.11.2.2版本开始,Linux版OpenResty包含包管理器opm,位于/usr/local/openresty/bin/opm。除alpine、buster和bullseye外,所有镜像均内置opm。
在alpine镜像中使用opm需安装curl和perl:
bashapk add --no-cache curl perl
在bullseye镜像中使用opm,可选择bullseye-fat镜像或在自定义构建中安装openresty-opm包。
alpine-fat、centos和bionic变体包含LuaRocks,位于/usr/local/openresty/luajit/bin/luarocks。alpine变体因追求精简未包含(需构建系统支持)。
在Dockerfile中安装LuaRocks包:
dockerfileRUN /usr/local/openresty/luajit/bin/luarocks install <rock>
bashdocker build -f bionic/Dockerfile --build-arg "RESTY_LUAJIT_OPTIONS=--with-luajit-xcflags='-DLUAJIT_NUMMODE=2 -DLUAJIT_ENABLE_LUA52COMPAT -mno-sse4.2'" .
resty_openssl_version指示此值。ssl_session_(store|fetch)_by_lua*,OpenResty 1.17.x.1及以上已修复此问题。镜像构建包含多种信息标签,可通过jq查看:
bashdocker inspect openresty/openresty:1.17.8.1-0-bionic | jq '.[].Config.Labels'
主要标签说明:
| 标签名称 | 描述 |
|---|---|
| maintainer | 镜像维护者 |
| resty_version | OpenResty版本 |
| resty_openssl_version | OpenSSL版本 |
| resty_pcre_version | PCRE版本 |
| resty_luarocks_version | LuaRocks版本 |
| resty_image_base | 基础镜像名称 |
| resty_image_tag | 基础镜像标签 |
Dockerfile的CMD使用-g "daemon off;"指令保持Nginx后台运行。若nginx.conf中已包含此指令,需显式调用openresty(Windows镜像调用nginx):
bashdocker run [options] openresty/openresty:bionic openresty
调用其他命令(如resty工具):
bashdocker run [options] openresty/openresty:bionic resty [script.lua]
注意:alpine镜像不包含resty工具所需的perl和ncurses包。
克隆仓库并使用指定Dockerfile构建自定义镜像:
bashgit clone [***] cd docker-openresty docker build -t myopenresty -f bionic/Dockerfile . docker run myopenresty
支持的基础系统Dockerfile路径:
使用--build-arg设置构建参数:
bashdocker build --build-arg RESTY_J=4 -f jammy/Dockerfile .
主要构建参数及默认值:
| 参数 | 默认值 | 描述 |
|---|---|---|
| RESTY_VERSION | 1.21.4.1 | OpenResty版本 |
| RESTY_LUAROCKS_VERSION | 3.9.0 | LuaRocks版本 |
| RESTY_OPENSSL_VERSION | 1.1.1q | OpenSSL版本 |
| RESTY_PCRE_VERSION | 8.45 | PCRE版本 |
| RESTY_IMAGE_BASE | "ubuntu"/"alpine" | 基础镜像名称 |
| RESTY_IMAGE_TAG | "jammy"/"3.16" | 基础镜像标签 |




manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务