ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

Cobalt Docker 部署后实例无法正常工作怎么排查?

Cobalt Docker 部署后实例无法正常工作怎么排查? Cobalt Docker 部署后实例无法正常工作怎么排查【免费下载链接】cobaltbest way to save what you love项目地址: https://gitcode.com/GitHub_Trending/cob/cobalt你用 docker compose 按 docs/run-an-instance.md 启动了 cobalt 实例但访问不正常、下载失败或者容器起不来。这篇文档按官方文档里明确给出的排查点来定位先核对必填的 URL 环境变量文档明确说没改的话 cobalt wont work correctly再用GET /api/serverInfo确认 API 存活最后用POST /api/json做一次真实处理请求做功能验证剩余的具体现象容器无法 detach、反向代理、需要登录的服务、浏览器粘贴失效各有对应的文档化分支。前提机器上已安装并配置好docker和docker-composecompose 文件使用了 示例配置web 或 api 实例。第一步核对 docker-compose.yml 里的必填 URLdocs/run-an-instance.md 在复制示例配置这一步明确警告make sure to replace default URLs with your own or cobalt wont work correctly.也就是说示例配置里的默认 URL 不替换成你自己的实例就不会正常工作。需要核对的三个变量变量所属实例说明API_URLapiREQUIRED TO RUN THE API改成你的 API 可访问 URL示例格式为https://api.cobalt.tools/WEB_URLwebREQUIRED TO RUN WEB改成你的前端可访问 URLAPI_URLweb前端客户端发起 api 请求时使用的地址应指向你自己的 api 实例另外确认端口映射没被改错api 默认从API_PORT9000访问web 默认从WEB_PORT9001访问。修改后从 cobalt 目录重新执行docker compose up -d。下面是示例配置中与本排查相关的关键部分完整文件见 docker-compose.example.yml。其中API_URL、WEB_URL、API_NAME是示例默认值必须替换为你实例的实际 URL 和名称services: cobalt-api: image: ghcr.io/imputnet/cobalt:7 restart: unless-stopped container_name: cobalt-api init: true # if container doesnt run detached on your machine, uncomment the next line #tty: true ports: - 9000:9000/tcp environment: # replace https://api.cobalt.tools/ with your instances target url in same format API_URL: https://api.cobalt.tools/ # replace eu-nl with your instances distinctive name API_NAME: eu-nl cobalt-web: image: ghcr.io/imputnet/cobalt:7 restart: unless-stopped container_name: cobalt-web init: true ports: - 9001:9001/tcp environment: # replace https://cobalt.tools/ with your instances target url in same format WEB_URL: https://cobalt.tools/ # replace https://api.cobalt.tools/ with preferred api instance url API_URL: https://api.cobalt.tools/示例里还有一个watchtower服务用于自动更新 cobalt 镜像与本次排查无关可按需保留。第二步用 GET /api/serverInfo 确认 API 存活按 docs/api.mdGET /api/serverInfo返回服务器基本信息响应类型为application/json。用浏览器或任意 HTTP 客户端请求你的 API_URL/api/serverInfo例如http://服务器IP:9000/api/serverInfo。响应字段包括字段含义versioncobalt 版本commitgit commitbranchgit 分支name服务器名即你设置的API_NAMEurl服务器 URLcorscors 状态startTime服务器启动时间两个判断要点能返回 JSON 且url字段是你的地址说明 API 进程在跑、API_URL配置生效了返回的name就是API_NAME的值默认unknown如果你在 compose 里设过API_NAME看到自己设的名字也能确认请求打到了正确的实例。完全连不上超时、拒绝连接时先回到第一步核对端口和 URL 配置再检查容器是否真的在运行。第三步用 POST /api/json 做功能验证serverInfo 只证明进程活着真正能干活要发一次处理请求。按 docs/api.md请求体类型为application/json且每个POST /api/json请求都必须带Accept和Content-Type头请求体中的url字段mustbe included in every request值为 URL encoded as URI响应中的status取值error / redirect / stream / success / rate-limit / picker出问题时text字段mostly used for errorsstream/success时url字段是文件直链或 live render 链接。示例请求你的 API_URL换成你的 API 地址url换成任意受支持服务的真实链接curl -X POST 你的 API_URL/api/json \ -H Accept: application/json \ -H Content-Type: application/json \ -d {url: 受支持服务的链接URL encoded}返回success/stream且带url说明实例全链路正常。返回rate-limit请求数超过了限流窗口。默认RATELIMIT_WINDOW为 60 秒、RATELIMIT_MAX为每窗口 20 次超出的请求会被拦截整个窗口时长。如果你刚部署完就反复测试被打回属于这个原因确需放宽可在 api 环境里调整这两个变量。返回error看text字段的具体错误再对照下面按现象分支的排查项。按具体现象分支排查容器无法以 detached 方式运行示例配置 在 api 和 web 两个服务下都有这个注释# if container doesnt run detached on your machine, uncomment the next line #tty: true如果你的机器上容器起不来或docker compose up -d后立刻退出取消对应服务下tty: true的注释再重新docker compose up -d。实例挂在反向代理后面文档建议面向公网的实例使用反向代理如 nginx。此时 compose 里的端口映射要改成只绑定本机否则容器端口直接暴露公网。示例配置给出的写法是ports: # if youre using a reverse proxy, uncomment the next line and remove the one above (9000:9000/tcp): - 127.0.0.1:9000:9000web 服务同理9001。如果配了代理但实例打不开先确认这条绑定和代理指向的端口是否一致。某些服务需要登录才能访问如果只有部分服务下载失败而该服务需要认证才能查看公开内容文档给出的做法是在docker-compose.yml同目录创建cookies.json格式参考 cookies.example.json并在示例配置中取消COOKIE_PATH: /cookies.json及对应volumes./cookies.json:/cookies.json两行的注释。网页里粘贴链接无效旧版 Firefox实例接口都正常、但 cobalt 网页上的粘贴按钮无效时检查浏览器Firefox 从 125 版本开始默认支持粘贴新版浏览器直接升级即可。旧版按 docs/troubleshooting.md 操作地址栏进入about:config如出现风险提示点 accept the risk and continue注意不要动其他偏好项文档明确警告其他改动可能弄坏浏览器搜索dom.events.asyncClipboard.readText点击最右侧的切换按钮把false改为true回到 cobalt 页面刷新再点粘贴。补充node.js 方式运行时的 Ubuntu 22.04 DNS 问题这一条来自文档中node.js 方式非 Docker 方式的说明在 Ubuntu 22.04 上ffmpeg-static二进制可能无法解析 DNS需要安装并运行nscdsudo apt install nscd sudo service nscd start如果你用的是docker compose方式而不是npm start本地运行这条不适用前面几步才是文档给出的主路径。核对清单按顺序过一遍API_URLapi 和 web 两处、WEB_URL是否已替换为自己的地址9000/9001端口能否访问到容器GET /api/serverInfo是否返回 JSONname/url是否是你自己的实例POST /api/json是否返回success/stream被rate-limit时是否属于限流窗口容器 detach、反向代理端口、cookies.json、旧版 Firefox 这几个分支是否命中你的现象。全部核对后仍报error时以响应里的text字段为准定位官方 troubleshooting 页面标注了 work-in-progress后续会补充更多指南。【免费下载链接】cobaltbest way to save what you love项目地址: https://gitcode.com/GitHub_Trending/cob/cobalt创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表