2
votes

I am delving first time into world of Docker containers. My host environment is Windows 10 Enterprise on VM. I am able to start docker and using Linux Container mode. Docker Engine: v19.03.8

starting with Evenstore container -

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

I have created a compose file

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

I am running Eventstore under development to avoid TLS requirements

The container starts and shows as running in docker dashboard but I am not able to access UI using

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

From documents I understand that -P 2113:2113 does port forwading. I even changed the External port to 8085 but still does not work.

I need help accessing Eventstore ui from host VM.

Question 2) can we assign an external IP address to EventStore container through compose file (environment variables) that can be used directly in host instead of mapping.

Let me know if you need information from logs

****** Edit 1*****

After working through the changes in compose file in my answer below I was able to get UI working in Edge but with some errors

A) Microsoft Edge

  1. enter image description here

2)enter image description here

B) Chrome

  1. enter image description here
  2. enter image description here

From 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

When trying to access from host using edge or 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)

**Question 3 **

Can the self signed certificate be downloaded and added to client trust mode?

1

1 Answers

3
votes

So i been trying to search different ways in google and stubled upon an issue in Eventstore Github which provided me with good direction

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

Davide Guida had similar issue and Pieter Germishuys answers helped me

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

or to be specific

--enable-external-tcp 

ultimately got me a good break.

The issue is not fully resolved because of certificate needed, which I was expecting was not a requirement when running in Dev mode