我有两个容器,一个运行启动 Protractor 的 Node.js 进程,另一个运行独立的 Selenium 容器。该文件如下所示:
version: '2'
services:
www.example.localhost:
build: .
depends_on:
- selenium
dns_search:
- static.example.localhost
extra_hosts:
- "static.example.localhost:127.0.0.1"
ports:
- "3000:3000"
- "4000:4000"
volumes:
- ./src:/code/src
- ./api:/code/api
entrypoint: "npm run"
command: "test:e2e"
selenium:
dns_search:
- selenium.example.localhost
image: selenium/standalone-chrome-debug:2.52.0
environment:
no_proxy: localhost
volumes:
- /dev/urandom:/dev/random
ports:
- "4444:4444"
- "6900:5900"
www.example.localhost
运行 protractor,它又通过 protractor.config.js 中的以下行连接到 selenium 容器:
seleniumAddress: "http://selenium:4444/wd/hub",
directConnect: false,
当我在 selenium 容器上运行 VNC 时,打开容器内的 Chrome 浏览器并输入 www.example.localhost:3000
它无法解析域。但是,当我运行 wget www.example.localhost:3000
时,它可以很好地获取 index.html 文件。知道我做错了什么吗?
最佳答案
事实证明,在 Google Chrome 中,任何以 localhost
结尾的域都会解析为 127.0.0.1,无论您的 DNS 设置如何。将域从 .localhost
更改为 .dev
即可修复该问题。
关于node.js - 域在主机上解析,但不在 docker 容器内解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39135329/