
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
🐳 官方非官方™Docker容器,用于运行Sopel——一个Python IRC机器人
相关链接:
拉取最新Sopel版本(https://github.com/sopel-irc/sopel/releases/tag/v8.0.1%EF%BC%89%E7%9A%84Docker%E9%95%9C%E5%83%8F
console$ docker pull sopelirc/sopel:latest
启动机器人。为容器指定一个名称(例如my_first_sopel),以便后续启动和关闭更简单。
console$ docker run --name=my_first_sopel -ti sopelirc/sopel
首次运行时,将进入设置向导以创建机器人的配置文件。详见Sopel Wiki的“首次运行”条目。
对于上述命令启动的机器人,可通过简单的键盘中断(Ctrl-C)停止,或使用docker stop命令:docker stop my_first_sopel
可使用docker start命令重启机器人:docker start -ia my_first_sopel。
注意:使用docker start ...启动的容器需要用docker stop ...停止(Ctrl-C无效),如上例所示。
Sopel机器人的最低要求是有效的配置文件。您可以通过启动新机器人创建配置文件,或使用现有配置文件!虽然Sopel已内置多种模块,但您可以轻松向容器添加第三方和自定义模块。
按照快速入门步骤将在容器文件系统中生成配置目录。您可能需要将其提取到主机,以便更容易修改和持久化。可使用docker cp ...命令将.cfg文件或整个配置文件夹复制到指定目录:
将default.cfg文件复制到主机的/some/path/on/the/host目录
console$ docker cp my_first_sopel:/home/sopel/.sopel/default.cfg /some/path/on/the/host/
将整个~/.sopel配置目录复制到主机的/some/path/on/the/host目录
console$ docker cp my_first_sopel:/home/sopel/.sopel /some/path/on/the/host/
提取的配置文件/文件夹可作为其他机器人的模板进行传输或复制。
可将配置文件或文件夹挂载到/home/sopel/.sopel供机器人使用。应使用默认配置文件名(default.cfg),或在docker run ...命令后附加-c correct_file_name.cfg指定正确的文件名。
挂载配置文件
console$ docker run -v "/path/to/my/default.cfg:/home/sopel/.sopel/default.cfg" ...
挂载配置文件夹
console$ docker run -v "/path/to/config/folder:/home/sopel/.sopel" ...
如果遇到权限问题,可使用PUID和PGID环境变量使容器内用户与主机ID匹配。或者,可将配置文件/文件夹的所有权更改为容器用户(uid=100000,gid=100000)。
Python包
PyPI可用模块
参见EXTRA_PYPI_PACKAGES环境变量。
您也可以将pip requirements.txt格式的文件挂载到/pypi_packages.txt,其中包含启动时要安装的包列表。
源代码模块
将模块源代码目录挂载到/home/sopel/.sopel/modules,Sopel将自动识别并加载模块。
Alpine Linux包
参见EXTRA_APK_PACKAGES环境变量。
您也可以将文本文件挂载到/apk_packages.txt,其中包含启动时要安装的包列表。
基于https://github.com/sopel-irc/sopel master分支的镜像每天00:00 UTC重建,使用nightly标签。
启动机器人时,可通过在docker run ...命令行传递一个或多个环境变量来调整机器人进程的环境设置。
PUID和PGID通常,sopel进程以UID和GID为***运行,以防止意外访问主机资源。这意味着挂载卷需要允许该用户读写。您可以设置这些环境变量来更改启动时sopel用户的ID。例如:
console$ docker run -e PUID=1000 ... Setting UID for user sopel to 1000... Done. ... ... Welcome to Sopel. Loading modules... ...
通常,您会将PUID/PGID设置为与挂载卷所有者ID匹配。
EXTRA_PYPI_PACKAGES可通过提供空格分隔的包名列表在启动时安装PyPI包。由于底层调用pip install ...,任何pip有效的包名都可接受。例如:
console$ docker run -e EXTRA_PYPI_PACKAGES="sopel-modules.weather google-api-python-client sopel-modules.youtube" ... Installing package "sopel-modules.weather" with pip... ... Installing package "google-api-python-client" with pip... ... Installing package "sopel-modules.youtube" with pip... ... ... Welcome to Sopel. Loading modules... ...
这将安装sopel天气模块、sopel ***模块及其依赖google-api-python-client。
EXTRA_APK_PACKAGES有时,您可能需要安装系统包以满足各种Python包的依赖。这些包可指定为空格分隔的列表,通过apk add --no-cache ...安装。例如,您可能需要数据库客户端、编译源代码所需的工具以及允许pip从仓库安装的git:
console$ docker run -e EXTRA_APK_PACKAGES="mysql-client build-base git" ... Installing apk packages: mysql-client build-base git... ... ... Welcome to Sopel. Loading modules... ...
这将安装所需的系统包。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务