sopelirc/sopel]([] 的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,其中包含启动时要安装的包列表。
基于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.***" ... 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... ...
这将安装所需的系统包。
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务