如果你使用 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://github.com/codecentric/single-page-application-server/workflows/Update%20Docker%20Images/badge.svg
该容器镜像提供了使用Nginx作为Web服务器来部署单页应用(SPA)的基础。
使用此镜像部署应用时,对应的Helm chart也可在https://hub.docker.com/r/codecentric/single-page-application-server-chart%E8%8E%B7%E5%8F%96%E3%80%82
以下标签每周自动更新,包含最新的Nginx基础镜像:
latest(别名:1-nginx-stable-alpine)1(别名:1-nginx-stable-alpine)latest-nginx-stable-alpine(别名:1-nginx-stable-alpine)1-nginx-stable-alpinelatest-nginx-mainline-alpine(别名:1-nginx-mainline-alpine)1-nginx-mainline-alpine同时提供特定Nginx版本的额外标签。
Angular和React的使用示例位于examples目录中。
index.html,但.js、.css等资源除外。window.spaConfig访问。将SPA资源放置在/app/目录下,该目录中的所有文件将由Nginx提供服务。
通过容器启动时的YAML文件配置应用:
/config/default.yaml,通常在docker build时添加。/config/config.yaml,此文件将覆盖默认设置。示例配置
yamldefault: spa_config: appTitle: "我的应用" endpoints: api: "https://api.example.com"
也可定义特定主机的配置:
yamldefault: spa_config: appTitle: "默认标题" endpoints: api: "https://api.example.com" special_host: server_names: - "special.example.com" spa_config: appTitle: "特定域名标题"
配置参考
以下配置展示了基础镜像所有可用设置的默认值:
yamldefault: # 指定此配置适用的主机名 server_names: # "_"匹配任何主机名 - "_" # index.html中base元素的href属性 base_href: "/" # 此映射中的所有选项将通过`window.spaConfig`在SPA中可用 # 要启用此功能,还需在index.html中包含spa_config.js # 现有spa_config.js将在容器启动时被覆盖 spa_config: # SPA通信的端点映射 # 若启用.hardening.whitelist_connect_sources,这些端点将自动添加到CSP的connect-src白名单 endpoints: {} access_log: # 启用访问日志 enabled: false source_maps: # 启用源代码映射 enabled: false # 用于识别源代码映射资源的正则表达式 regex: "\\.(js|css)\\.map$" http: enabled: true port: 80 # 若启用HTTPS,是否重定向至HTTPS https_redirect: true # 应用位于NAT后时,使用不同的HTTPS重定向端口 # 0 = 使用https.port https_redirect_port: 0 # 纯文本连接默认禁用HTTP/2,因为Nginx仅通过预先了解支持纯文本HTTP/2 # https://trac.nginx.org/nginx/ticket/816 http2_enabled: false https: enabled: false port: 443 # 永久强制使用HTTPS hsts_enabled: true ssl_certificate: /etc/ssl/default.crt ssl_certificate_key: /etc/ssl/default.key # 使用推荐值配置支持的TLS协议和密码套件 # https://github.com/OWASP/CheatSheetSeries/blob/1e07c6c894f98af58d8a417eb8df1b20e1b3337e/cheatsheets/TLS_Cipher_String_Cheat_Sheet.md owasp_cipher_string: A http2_enabled: true keepalive: server: # 服务器端保持活动客户端连接的超时时间(秒) timeout_seconds: 75 hardening: # 禁用引用以防止信息泄露 referrer_policy: "no-referrer" # 防止浏览器猜测内容类型 x_content_type_options: "nosniff" # 启用时,自动将.spa_config.endpoints中的端点添加到CSP的connect-src白名单 whitelist_spa_config_endpoints_as_connect_sources: true # CSP指令映射,将添加到所有HTML和JavaScript文档的HTTP响应中 content_security_policy: base-uri: "'self'" block-all-mixed-content: true default-src: "'self'" form-action: "'self'" frame-ancestors: "'self'" frame-src: "'self'" object-src: "'none'" script-src: "'self'" style-src: "'self'"
为增强安全性,可使用只读根文件系统。确保以下目录可写:
/config/.out:用于文件生成。/tmp:Nginx用于缓存文件和nginx.pid。在Kubernetes中,建议将这些目录挂载为emptyDir类型的可写卷。
当Dockerfile使用codecentric/single-page-application-server作为基础镜像时,使用cosign验证基础镜像:
bashcosign dockerfile verify Dockerfile \ --certificate-oidc-issuer https://token.actions.githubusercontent.com \ --certificate-identity-regexp '^https\:\/\/github\.com\/codecentric\/single\-page\-application\-server' \ --base-image-only
可通过克隆此仓库并在examples/angular目录中执行该命令进行测试。
MIT
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。

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