关于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启动为啥会解析不了域名,原因不明,先记录下