Making service available internally and externally

Hello,

I have a question related to DNS search suffixes for non-internal services (which remains unanswered).

I would like to make a faktory service available internally on port 7419 for a tcp connection from another worker service AND available on port 7420 publicly so that I can access the admin UI remotely.

I have a config like this:

  faktory:
    image: contribsys/faktor
    port: 7420
    ports:
      - 7420:7420
      - 7419:7419

How can I configure my service so it’s available internally and externally?

Based on the docs, it seems ports are exposed only internally by default. If you want to also expose them externally, you need to use a custom balancer.

This is all for Convox V3, IIRC what of this is supported in V2.

Thanks @julian

I have no problem with the external port working, I just can’t access my service internally 7419, there is no local dns for ‘faktory’.

Have you managed to get a custom balancer to work?

I added the balancer section to my config, but I can’t call convox balancers on the cli to find what the endpoint is.

It turns out that the service discovery docs are conflicting.
I found this page which explained a method of constructing my service discovery urls.

i.e. NOT ‘faktory’, but ‘faktory.{app}.{rack}.convox’

Now the address is “valid” but it’s still not available on port 7419 or 7420, only 80 and 443.
When I run nmap from another server in the app i get this.

nmap faktory.${app}.${rack}.convox -p7419
PORT     STATE    SERVICE
7419/tcp filtered unknown