我有一个反向代理、前端和后端容器。后端运行Pyppeteer,反向代理在 docker-compose.yml 中设置了别名“servicename.localhost”:
networks:
default:
aliases:
- servicename.localhost
这样我就可以curl --insecure https://servicename.localhost
从后端容器中获取,但不幸的是,同一容器上的 Chromium 似乎忽略了该设置,因此“servicename.localhost”解析为 127.0.0.1:
pyppeteer.errors.PageError: net::ERR_CONNECTION_REFUSED 在https://servicename.localhost/login
我该如何解决这个问题?
看起来它可能与DNS 预取或异步 DNS有关,但似乎没有命令行标志来禁用它们中的任何一个。
我尝试过的事情并没有改变任何事情:
- 添加
"--host-rules='MAP servicename.localhost {}'".format(socket.gethostbyaddr('servicename.localhost')[-1][0])
到pyppeteer.launch
args
列表参数。 - 添加
"--host-resolver-rules=[same as above]
到pyppeteer.launch
args
列表参数。