swipl/swish本镜像基于官方SWI-Prolog Docker镜像构建,提供SWISH(SWI-Prolog for SHaring)Web服务器,支持在浏览器中运行SWI-Prolog代码。
/data卷管理配置、用户数据及证书--with-R选项连接R Docker镜像适用于需要在浏览器环境中运行、演示或共享SWI-Prolog代码的场景,如Prolog教学、代码协作、快速原型开发等。
通过以下命令构建镜像:
bashmake image
提供swish.sh脚本简化常见运行流程,自动生成docker run命令。基本用法:
bash./swish.sh [选项] [镜像入口点选项...]
--port=N:修改端口映射为-p N:3050,默认3050--data=dir:挂载指定目录为数据卷,默认当前工作目录--with-R[=from]:添加--volumes-from from(from默认rserve),连接R Docker镜像-n:仅打印将要执行的docker命令,不实际运行-d:后台运行(detached模式)-it:传递交互式终端参数未明确指定的选项将直接传递给镜像入口点。
基本运行命令(默认配置):
bashdocker run -p 3050:3050 -v $(pwd):/data swish
指定端口和数据目录:
bashdocker run -p 8080:3050 -v /path/to/data:/data swish
镜像通过/data卷存储所有持久化数据,包含以下关键目录/文件:
daemon.daemon,服务器以此身份运行--https选项时创建,包含server.crt(证书)和server.key(密钥),无证书时自动生成自签名证书容器内服务器默认监听端口3050:
--https时启动HTTP服务器docker run ... swish --https时启动HTTPS服务器容器入口点为/entry.sh,负责初始化数据卷并启动服务器,支持以下选项:
--bash:启动bash shell而非服务器,shell退出后容器终止--help:输出简短帮助信息SWISH配置通过config-enabled目录文件控制,可使用以下命令管理配置:
bashdocker run -it swish [配置选项...] [--run]
--run时,配置完成后容器停止;指定--run则配置后自动启动服务器--list-config:列出已安装和可用的配置项,已安装项会标注是否被修改
--auth=type:修改认证模式,type可选值:
always:完全认证模式,强制用户登录并允许执行任意命令。首次配置需交互式运行(docker run -it)以创建初始用户,新增用户使用docker run -it swish --add-usersocial:社交登录模式,默认启用HTTP登录、Google登录和StackOverflow登录,需分别编辑config-enabled/auth_google.pl和config-enabled/auth_stackoverflow.pl完成配置anon(或anonymous):默认模式,完全***访问,仅执行沙盒化Prolog查询--add-config file ...:从可用配置目录复制一个或多个配置文件到config-enabled
--add-user:添加HTTP认证用户,交互式提示输入用户名、***、组(建议填users)和密码
--https:启用HTTPS服务器,使用https目录证书(无证书时生成自签名证书)。可通过--CN=host(主机名)、--O=organization(组织)、--C=country(国家)自定义证书信息
bash./swish.sh
bash./swish.sh --port=8080 --data=/opt/swish-data -d
bashdocker run -p 443:3050 -v /path/to/data:/data swish --https
bashdocker run -it -p 3050:3050 -v /path/to/data:/data swish --auth=always --run
bashdocker run -it -v /path/to/data:/data swish --add-user

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