Не удается подключиться к инспектору Node.js / Jest через открытый контейнерный порт Docker - PullRequest
0 голосов
/ 17 апреля 2020

Невозможно подключиться к контролеру Jest (порт 9230) на Node.js Chrome инспектор

Когда я запускаю: docker exec -it test_api_run_eb9ed32c928a wget -qO- http://localhost:9230/json

JSON возвращается из контейнера:

[ {
  "description": "node.js instance",
  "devtoolsFrontendUrl": "chrome-devtools://devtools/bundled/js_app.html?experiments=true&v8only=true&ws=localhost:9230/a0dab38a-e6d8-43a3-a459-e3ea9eabf470",
  "devtoolsFrontendUrlCompat": "chrome-devtools://devtools/bundled/inspector.html?experiments=true&v8only=true&ws=localhost:9230/a0dab38a-e6d8-43a3-a459-e3ea9eabf470",
  "faviconUrl": "https://nodejs.org/static/favicon.ico",
  "id": "a0dab38a-e6d8-43a3-a459-e3ea9eabf470",
  "title": "node_modules/.bin/jest",
  "type": "node",
  "url": "file:///usr/src/sand/node_modules/jest/bin/jest.js",
  "webSocketDebuggerUrl": "ws://localhost:9230/a0dab38a-e6d8-43a3-a459-e3ea9eabf470"
} ]
  • Но когда я получаю доступ к chrome://inspect, ресурс не указывается. Я уже добавил localhost:9230 как цель сети для обнаружения.

  • Когда я получаю доступ к chrome-devtools://devtools/bundled/js_app.html?experiments=true&v8only=true&ws=localhost:9230/a0dab38a-e6d8-43a3-a459-e3ea9eabf470 в браузере, Chrome ошибки с:

  • Debugging connection was closed. Reason: WebSocket disconnected

Docker Порт

Работает docker port test_api_run_eb9ed32c928a 9230 Возвращает: Error: No public port '9230/tcp' published for test_api_run_eb9ed32c928a

Docker Фрагмент композиции:

    expose:
      - '8000'
    ports:
      - '127.0.0.1:9230:9230'

  • Я также пытался удалить 127.0.0.1: из ports: в этой композиции

Node.js / Команда запуска Jest:

node --inspect-brk=0.0.0.0:9230 node_modules/.bin/jest --forceExit --runInBand

Выход CLI: Debugger listening on ws://0.0.0.0:9230/74d22b62-051d-4aa3-b312-5f4defb170e6

Работает netstat -a в контейнере:

Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 0.0.0.0:9230            0.0.0.0:*               LISTEN
tcp        0      0 127.0.0.11:41339        0.0.0.0:*               LISTEN
netstat: /proc/net/tcp6: No such file or directory
udp        0      0 127.0.0.11:53289        0.0.0.0:*
netstat: /proc/net/udp6: No such file or directory
netstat: /proc/net/raw6: No such file or directory
Active UNIX domain sockets (servers and established)
Proto RefCnt Flags       Type       State         I-Node Path

Docker проверка на контейнере (фрагмент NetworkSettings):

        "NetworkSettings": {
            "Bridge": "",
            "SandboxID": "5c1fb6ad8189e4407cf40eb8dc0d9f0f8eacc13df6bb0b45b8d48d51da33655f",
            "HairpinMode": false,
            "LinkLocalIPv6Address": "",
            "LinkLocalIPv6PrefixLen": 0,
            "Ports": {
                "9230/tcp": null
            },
            "SandboxKey": "/var/run/docker/netns/5c1fb6ad8189",
            "SecondaryIPAddresses": null,
            "SecondaryIPv6Addresses": null,
            "EndpointID": "",
            "Gateway": "",
            "GlobalIPv6Address": "",
            "GlobalIPv6PrefixLen": 0,
            "IPAddress": "",
            "IPPrefixLen": 0,
            "IPv6Gateway": "",
            "MacAddress": "",
            "Networks": {
                "test_sand": {
                    "IPAMConfig": null,
                    "Links": null,
                    "Aliases": [
                        "51117364a172"
                    ],
                    "NetworkID": "338c689e41c4ecbb691626560f6f98a04f6d9a93e640a766d37faa773e5ce760",
                    "EndpointID": "0c161fd96b88a60ea10a85d81aeda09cd936added4363dd7ba6613dea3ad9045",
                    "Gateway": "172.18.0.1",
                    "IPAddress": "172.18.0.4",
                    "IPPrefixLen": 16,
                    "IPv6Gateway": "",
                    "GlobalIPv6Address": "",
                    "GlobalIPv6PrefixLen": 0,
                    "MacAddress": "02:42:ac:12:00:04",
                    "DriverOpts": null
                }
            }
        }

Область, которая выглядит проблемной c:

"Ports": {
    "9230/tcp": null
},
  • Вывод Netstat также выглядит странно

Есть ли шаг, который мне не хватает для разрешения, или неверная конфигурация порта, или что-то еще, мешающее работе сети?

1 Ответ

0 голосов
/ 17 апреля 2020

Исправлено это путем включения --service-ports в docker -композитный прогон

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...