
如果你使用 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://hub.docker.com/r/ficusio/openresty/的Dockerfile实现,提供两种版本。它基于OpenResty构建,适用于需要高性能Web服务器和Lua脚本支持的场景,可用于开发环境快速测试和生产环境部署。
Alpine版本(ficusio/openresty:latest):
基于https://hub.docker.com/_/alpine/,虚拟体积仅31MB,包含完整功能的OpenResty v1.9.3.1和http://wiki.alpinelinux.org/wiki/Alpine_Linux_package_management,可轻松安装https://pkgs.alpinelinux.org/packages。
Debian版本(ficusio/openresty:debian):
基于debian:wheezy,体积较大(256MB),主要用于Nginx分析。因Alpine Linux使用的http://www.musl-libc.org/可能难以构建部分分析工具,此版本可解决该问题。
Nginx配置路径:Nginx以/opt/openresty/nginx为http://nginx.org/en/docs/configure.html,默认加载配置文件`/opt/openresty/nginx/conf/nginx.conf`,默认HTML根目录为`/opt/openresty/nginx/html/`。
Lua模块:OpenResty包含的Lua模块位于/opt/openresty/lualib/,该目录已加入Lua包路径,无需在Nginx配置中通过lua_package_path指定。
LuaJIT:Lua Nginx模块基于LuaJIT 2.1构建,同时提供独立的lua二进制可执行文件。
临时文件目录:Nginx临时文件存储于/var/nginx/。若需以https://github.com/docker/docker/pull/***启动容器,需将该目录挂载为卷以保证可写:
sh# 启动容器 docker run --name nginx --read-only -v /var/nginx ... ficusio/openresty # 删除容器及卷 docker rm -v nginx
本镜像使用http://docs.docker.com/engine/reference/builder/#onbuild,会自动将Docker构建上下文根目录(即`Dockerfile`所在目录)下的`nginx/`目录及其所有文件、子目录复制到容器内的`/opt/openresty/nginx/`。运行Nginx所需的最小配置结构如下:
project_root/ ├ nginx/ # 所有子目录/文件将复制到/opt/openresty/nginx/ | └ conf/ | └ nginx.conf # 自定义Nginx配置文件 └ Dockerfile
Dockerfile示例:
dockerfileFROM docker.xuanyuan.run/ficusio/openresty:latest EXPOSE 8080
更多示例可参考https://github.com/ficusio/openresty/tree/master/_example。
Nginx默认启动命令为nginx -g 'daemon off; error_log /dev/stderr info;',需注意:
nginx.conf中指定daemon指令,否则会因重复指令导致配置检查错误。daemon off模式确保宿主机服务管理器(如systemd)或http://docs.docker.com/engine/reference/commandline/cli/#restart-policies能检测Nginx退出状态并重启容器,无需容器内服务管理器。stderr,便于通过https://docs.docker.com/engine/reference/logging/overview/或https://github.com/gliderlabs/logspout等工具收集和调试日志。若需自定义命令行参数,可在Dockerfile中添加CMD指令覆盖默认命令,或直接在docker run时传入命令:
sh$ docker run --rm -it --name test ficusio/openresty bash root@06823698db68:/opt/openresty/nginx $ ls -l total 12 drwxr-xr-x 2 root root 4096 Feb 1 14:48 conf drwxr-xr-x 2 root root 4096 Feb 1 14:48 html drwxr-xr-x 2 root root 4096 Feb 1 14:48 sbin
为避免修改Lua代码或Nginx配置后重建镜像,可创建脚本挂载配置/内容目录并启动Nginx:
bash#!/usr/bin/env bash exec docker run --rm -it \ --name my-app-dev \ -v "$(pwd)/nginx/conf":/opt/openresty/nginx/conf \ -v "$(pwd)/nginx/lualib":/opt/openresty/nginx/lualib \ -p 8080:8080 \ ficusio/openresty:debian "$@" # 可添加更多-v选项挂载其他目录(如nginx/html/) # 不要使用-v "$(pwd)/nginx":/opt/openresty/nginx,这会覆盖/opt/openresty/nginx/sbin/nginx二进制文件
将脚本置于Dockerfile旁,赋予执行权限即可用于开发。开发时可临时禁用https://github.com/openresty/lua-nginx-module#lua_code_cache,无需重启Nginx即可测试代码修改。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务
以下是 ficusio/openresty 相关的常用 Docker 镜像,适用于 不同场景 等不同场景: