node.js - 域在主机上解析,但不在 docker 容器内解析

标签 node.js selenium docker protractor docker-compose

我有两个容器,一个运行启动 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/

相关文章:

javascript - 如何将 Wix Answers 连接到我的 SSO 服务器

java - Node java : Install error: "fatal error LNK1181 cannot open input file DelayImp.lib"

java - 如何检查分页按钮是否启用或禁用

javascript - 访问影子 DOM 中的元素

linux - statx 停止给予 EPERM 需要哪些能力

linux - Fedora 28 KDE 上的 Docker 容器没有互联网连接

javascript - 如何为返回表中的每一行添加换行符?

javascript - 如何遍历 HTML

java - 单击在 selenium 驱动程序 java 中不起作用

apache-spark - 本地同一计算机的Spark集群有哪些优势?