
adamus1red/sopel]([] ]([***]
🐋 官方非官方™ Docker容器,用于Sopel——一个Python IRC机器人
相关链接:
拉取最新Sopel版本(v7.0.5)的Docker镜像
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=***,gid=***)。
PyPI可用模块
参见EXTRA_PYPI_PACKAGES环境变量。
您也可以将pip requirements.txt格式的文件挂载到/pypi_packages.txt,以在启动时安装列出的包。
源码模块
将模块源码目录挂载到/home/sopel/.sopel/modules,Sopel将自动识别并加载该模块。
参见EXTRA_APK_PACKAGES环境变量。
您也可以将文本文件挂载到/apk_packages.txt,以在启动时安装列出的系统包。
启动机器人时,可通过在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.***" ... Installing package "sopel-modules.weather" with pip... ... Installing package "google-api-python-client" with pip... ... Installing package "sopel-modules.***" 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... ...
这将安装所需的系统包。===SHORT_DESC=== Sopel(Python IRC机器人)的Docker容器,提供便捷部署和运行方式,支持配置持久化、第三方模块扩展及环境变量自定义,适用于快速搭建IRC机器人实例。 ===FULL_DESC===# Sopel Docker镜像
]([] ]([***]
🐋 官方非官方™ Docker容器,用于Sopel——一个Python IRC机器人
相关链接:
拉取最新Sopel版本(v7.0.5)的Docker镜像
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 my_first_sopel
重启:docker start -ia my_first_sopel
注意:docker start启动的容器需用docker stop停止(Ctrl-C无效)。
Sopel需有效配置文件,可通过快速开始创建或接入现有配置。支持添加第三方/自定义模块扩展功能。
首次运行生成的配置文件需提取至主机以持久化:
复制单个配置文件:
console$ docker cp my_first_sopel:/home/sopel/.sopel/default.cfg /主机路径/
复制整个配置目录:
console$ docker cp my_first_sopel:/home/sopel/.sopel /主机路径/
提取的配置可作为其他机器人的模板。
将配置文件/目录挂载至/home/sopel/.sopel:
挂载单个文件:
console$ docker run -v "/主机路径/default.cfg:/home/sopel/.sopel/default.cfg" ...
挂载目录:
console$ docker run -v "/主机路径/config:/home/sopel/.sopel" ...
权限问题可通过PUID/PGID调整,或修改文件所有权为容器用户(uid=***,gid=***)。
PyPI模块:通过EXTRA_PYPI_PACKAGES或挂载requirements.txt至/pypi_packages.txt
源码模块:挂载源码目录至/home/sopel/.sopel/modules,Sopel自动加载
通过EXTRA_APK_PACKAGES或挂载文本文件至/apk_packages.txt安装系统依赖。
PUID 和 PGID调整容器内用户ID以匹配主机卷权限:
console$ docker run -e PUID=1000 -e PGID=1000 ...
通常设为挂载卷所有者ID。
EXTRA_PYPI_PACKAGES启动时安装PyPI包(空格分隔列表):
console$ docker run -e EXTRA_PYPI_PACKAGES="sopel-modules.weather sopel-modules.***" ...
EXTRA_APK_PACKAGES安装Alpine系统包(空格分隔列表):
console$ docker run -e EXTRA_APK_PACKAGES="mysql-client build-base git" ...



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