0

My question :

version: '2'
services:
  zookeeper:
    container_name: zookeeper
    image: debezium/zookeeper:${DEBEZIUM_VERSION}
    ports:
     - 2181:2181
     - 2888:2888
     - 3888:3888
  kafka:
    container_name: kafka
    image: debezium/kafka:${DEBEZIUM_VERSION}
    ports:
     - 9092:9092
    links:
     - zookeeper
    environment:
     - ZOOKEEPER_CONNECT=zookeeper:2181  
  connect:
    container_name: connect
    image: debezium/connect:${DEBEZIUM_VERSION}
    ports:
     - 8083:8083
    links:
     - kafka
    environment:
     - BOOTSTRAP_SERVERS=kafka:9092
     - GROUP_ID=1
     - CONFIG_STORAGE_TOPIC=my_connect_configs
     - OFFSET_STORAGE_TOPIC=my_connect_offsets
     - STATUS_STORAGE_TOPIC=my_connect_statuses

Here I want connect container to call my localhost PostGres

but it is throws cannot connect to jdbs:postgresql//localhost:5432/test error

So how can I set the networking of connect so that

  1. It can discover zookeeper and kafka
  2. It can also connent to my localhost machine

PS I tried adding network_mode: host in connect but then it did not discover the kafka and zookeeper

Akhil Soni
  • 73
  • 2
  • 11
  • same question as https://stackoverflow.com/questions/24319662/from-inside-of-a-docker-container-how-do-i-connect-to-the-localhost-of-the-mach – kalou.net Apr 26 '21 at 20:11

1 Answers1

0

localhost for connect is docker's private network, not your computers localhost where your postgres apparently is.

You need to use network_mode: host, but of course then the other 2 containers will be left unreachable on private network. So solution is to either use network_mode: host for all containers, OR bring your postgres to the same docker-compose file as a docker container so that it is too on the private network

J Asgarov
  • 2,526
  • 1
  • 8
  • 18
  • Or just use a DNS hostname or IP in the connection string. That is, if Postgres is not in a container itself. – im_baby Apr 26 '21 at 20:09
  • `network_mode: host` generally disables Docker networking, and I wouldn't usually recommend it. The canonical question linked to above describes some other paths that work (particularly on MacOS or Windows hosts). – David Maze Apr 26 '21 at 22:48