【采坑记录】关于splash启动的时候用docker-compose启动和docker启动的区别

使用docker-compose启动Scrapinghub的Splash服务时遇到部分网址无法解析域名的错误,而通过官方推荐的docker运行命令则能正常工作。错误发生在Lua脚本中执行网页请求时,可能的原因未明。对比两种启动方式,docker-compose启动的 Splash 出现DNS解析异常,而直接docker运行则无此问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关于splash启动的时候用docker-compose启动和docker启动的区别

尝试了下docker-compose启动splash,splash官网没有这个方式,所以需要自己网上找下启动的yaml文件

version: '3.8'

services:
  splash:
    image: scrapinghub/splash
    container_name: splash_web
    ports:
      - "8050:8050"
    expose:
      - 8050

这样启动之后,发下有的网址会出现解析不了域名的情况
在splash网页直接用lua脚本请求

这里请求的网址就不写了,http://xxx.com代替

function main(splash, args)
  splash.resource_timeout = 90
  assert(splash:go("http://xxx.com"))
  splash:wait(0.5)
  return {
    html = splash:html(),
    png = splash:png(),
    har = splash:har(),
  }
end

出现了以下报错
在这里插入图片描述

{
    "error": 400,
    "type": "ScriptError",
    "description": "Error happened while executing Lua script",
    "info": {
        "source": "[string \"function main(splash, args)\r...\"]",
        "line_number": 3,
        "error": "network3",
        "type": "LUA_ERROR",
        "message": "Lua error: [string \"function main(splash, args)\r...\"]:3: network3"
    }
}

加了assert断言之后,就会直接报错,network3看了下官网就是 DNS解析错误, 官方原文链接:https://splash.readthedocs.io/en/stable/scripting-ref.html
在这里插入图片描述

官方推荐的启动方式

docker run -it -p 8050:8050 --rm scrapinghub/splash

这样请求就没任何问题,挂着代理请求也没啥问题

至于docker-compose启动为啥会解析不了域名,原因不明,先记录下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值