EventStore Docker работает, но не может получить доступ к URL-адресу с хоста — порт не работает

Я впервые погружаюсь в мир контейнеров Docker. Моя хост-среда — Windows 10 Enterprise на виртуальной машине. Я могу запустить докер и использовать режим контейнера Linux. Двигатель докера: v19.03.8

начиная с контейнера Evenstore -

 [https://github.com/EventStore/eventstore-docker][1]

Я создал компоновочный файл

version: '3.8'

services:

  eventstore:
    container_name: productservice-eventstore
    image: eventstore/eventstore
    ports:
        - 2113:2113
        - 1113:1113
    environment:
      - EVENTSTORE_EXT_HTTP_PORT=2113
      - EVENTSTORE_EXT_TCP_PORT=1113 
      - EVENTSTORE_DEV=true

Я запускаю Eventstore в стадии разработки, чтобы избежать требований TLS

Контейнер запускается и отображается как работающий на панели управления докером, но я не могу получить доступ к пользовательскому интерфейсу, используя

http://localhost:2113/

enter code here
This site can’t be reachedlocalhost refused to connect.
Try:

Checking the connection
Checking the proxy and the firewall
ERR_CONNECTION_REFUSED

Из документов я понимаю, что -P 2113:2113 делает проброс портов. Я даже изменил внешний порт на 8085, но все равно не работает.

Мне нужна помощь в доступе к пользовательскому интерфейсу Eventstore с виртуальной машины хоста.

Вопрос 2) можем ли мы назначить внешний IP-адрес контейнеру EventStore через файл компоновки (переменные среды), который можно использовать непосредственно на хосте вместо сопоставления.

Дайте мне знать, если вам нужна информация из журналов

****** Редактировать 1*****

Проработав изменения в файле компоновки в моем ответе ниже, я смог заставить пользовательский интерфейс работать в Edge, но с некоторыми ошибками.

А) Microsoft Edge

  1. введите здесь описание изображения

2) введите здесь описание изображения

Б) Хром

  1. введите здесь описание изображения
  2. введите здесь описание изображения

Из Power Shell:

productservice-eventstore | ========================================================================================================
productservice-eventstore | DEVELOPMENT MODE IS ON. THIS MODE IS *NOT* INTENDED FOR PRODUCTION USE.
productservice-eventstore | WHEN IN DEVELOPMENT MODE EVENT STORE WILL
productservice-eventstore |  - NOT WRITE ANY DATA TO DISK.
productservice-eventstore |  - USE A SELF SIGNED CERTIFICATE.
productservice-eventstore | ========================================================================================================
productservice-eventstore |
productservice-eventstore | [    1, 1,13:43:36.155,INF]
productservice-eventstore | INTERFACES
productservice-eventstore | External TCP (Protobuf)
productservice-eventstore |     Enabled : True
productservice-eventstore |     Port    : 1113
productservice-eventstore | HTTP (AtomPub)
productservice-eventstore |     Enabled : True
productservice-eventstore |     Port    : 2113

При попытке доступа с хоста с помощью Edge или Chrome

productservice-eventstore | [    1,33,14:12:31.955,ERR] Client certificate validation error: "The certificate provided by the client failed validation with the following error(s): RemoteCertificateChainErrors (PartialChain)

**Вопрос 3**

Можно ли загрузить самоподписанный сертификат и добавить его в режим доверия клиента?


person TheMar    schedule 13.07.2020    source источник


Ответы (1)


Итак, я пытался искать разные способы в Google и наткнулся на проблему в Eventstore Github, которая дала мне хорошее направление.

https://github.com/EventStore/EventStore/issues/2547

У Давиде Гуиды была похожая проблема, и ответы Питера Гермишуйса помогли мне

command: --dev --enable-external-tcp --ext-ip=0.0.0.0 --int-ip=0.0.0.0 --disable-external-tcp-tls

или чтобы быть конкретным

--enable-external-tcp 

в конечном итоге я получил хороший перерыв.

Проблема не полностью решена из-за необходимости сертификата, который, как я ожидал, не является требованием при работе в режиме разработки.

person TheMar    schedule 14.07.2020
comment
Версия 20.6.1 (которую вы можете получить как ночную сборку) отключает SSL и TLS в режиме разработки. - person Alexey Zimarev; 20.07.2020