
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
Repl.it允许用户在线快速开始使用任何编程语言。为实现这一功能,其评估服务器使用Docker确保所有语言都安装并配置了合适的环境。之前Repl.it为每种语言使用单独的Docker镜像,但后来发现使用包含所有支持语言的单一镜像(即Polygott)更简单高效。本镜像即为该单一镜像,包含构建所需的所有代码。
你可以构建包含所有语言的完整镜像,或仅包含单一语言的版本(推荐在添加/修改特定语言支持时使用,因为构建完整镜像耗时极长)。Makefile提供以下目标:
bashmake help # 显示帮助信息 make image # 构建包含所有语言的Docker镜像 make image-LANG # 构建仅包含LANG语言的镜像 make run # 构建并运行包含所有语言的镜像 make run-LANG # 构建并运行仅包含LANG语言的镜像 make test # 构建并测试所有语言 make test-LANG # 构建并测试LANG语言 make deploy # 构建并部署镜像到Google Cloud Storage(Repl.it内部使用)
测试功能会运行各语言配置文件中指定的命令,并检查输出是否符合预期。若需调试,可使用make run或make run-LANG启动镜像内的shell。若需绕过Docker缓存(如调试构建时的网络错误),可手动运行docker build命令并添加--no-cache参数。
每种支持的语言在languages子目录下有一个TOML文件。关键配置项如下:
entrypoint: Repl.it中点击“运行”按钮时执行的文件名,用于语言检测(若存在该文件则识别为对应语言)和项目运行(识别主文件)。extensions: 语言文件的扩展名列表(如"py"而非".py"),用于语言检测。name: 语言名称,TOML文件需命名为<name>.toml,也是Makefile目标(如image-LANG)中的LANG参数。aliases: 语言的别名列表(如允许-l c++替代-l cpp)。aptKeys: 信任自定义apt仓库所需的PGP密钥ID列表。aptRepos: 自定义apt仓库列表,用于安装语言特定包。compile: 编译命令(列表形式),在run命令前执行。languageServer: LSP语言服务器启动命令(列表形式)。packages: 语言特定的Ubuntu包列表(通用包放在packages.txt中)。popularity: 语言流行度(浮点数,默认2.0),用于解决语言检测中的冲突。run: 运行命令(列表形式),在编译后执行(若无测试或所有测试被跳过则可选)。runtimeSetup: 镜像内polygott-lang-setup脚本执行的shell命令列表。setup: 构建阶段2执行的shell命令列表。tests: 测试配置,包含code(写入entrypoint的代码)、output(预期标准输出)、skip(是否跳过测试)。versionCommand: 输出语言版本的命令(列表形式),用于polygott-survey脚本。gen/schema.json中的JSON Schema验证。gen目录下的.ejs文件通过EJS模板系统转换为shell脚本(由Docker镜像内的Node.js脚本完成)。packages.txt中的共享包。setup命令。除编程语言可执行文件外,镜像还包含以下脚本:
polygott-self-test: 运行所有语言的测试,若任一测试失败则返回非零代码。polygott-survey: 输出所有语言的版本信息(表格形式)。polygott-lang-setup [-l LANG]: 复制/opt/homes/LANG/到/home/runner/并执行runtimeSetup命令(LANG默认由detect-language检测)。detect-language: 检测当前目录项目的语言(基于entrypoint文件或扩展名,冲突时用流行度解决)。run-project [-s] [-b] [-l LANG]: 执行项目的编译和运行命令(LANG默认由detect-language检测;-s表示从stdin读取代码写入entrypoint)。run-language-server [-l LANG]: 启动语言服务器(LANG默认由detect-language检测)。polygott-x11-vnc: 启动X11的VNC转发(后台运行)。构建完整镜像后,可通过以下命令运行:
bashdocker run -it --rm docker.xuanyuan.run/replco/polygott bash
若需运行特定语言的镜像(如Python):
bashmake image-python # 构建Python镜像 docker run -it --rm docker.xuanyuan.run/replco/polygott:python bash
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务