Доступ к Docker Cassandra в клиенте, работающем под тем же Docker

#cassandra #docker-compose #datastax-java-driver

#cassandra #докер-составить #datastax-java-driver #docker-compose

Вопрос:

Мой файл docker-compose, как показано ниже,

 cassandra-db:
    container_name: cassandra-db
    image: cassandra:4.0-beta1
    ports:
      - "9042:9042"
    restart: on-failure
    volumes:
      - ./out/cassandra_data:/var/lib/cassandra
    environment:
      - CASSANDRA_CLUSTER_NAME='cassandra-cluster'
      - CASSANDRA_NUM_TOKENS=256
      - CASSANDRA_RPC_ADDRESS=0.0.0.0
    networks:
      - my-network
client-service:
    container_name: client-service
    image: client-service
    environment:
      - SPRING_PROFILES_ACTIVE=dev
    ports:
      - 8087:8087
    links:
      - cassandra-db
    networks:
      - my-network
networks:
  my-network:

  

Я использую Java-драйвер Datastax для подключения cassandra к клиентской службе, которая также работает внутри docker.

 CqlSession.builder()
                .addContactEndPoint(new DefaultEndPoint(
                        InetSocketAddress.createUnresolved("cassandra-db",9042)))
                .withKeyspace(CassandraConstant.KEY_SPACE_NAME.getValue())
                .build()
  

Я использую DNS-имя для подключения, но не подключен, я пробовал с помощью Docker IP контейнера cassandra, а depends-on также.

Любая проблема с файлом docker-compose?

Комментарии:

1. пожалуйста, запустите docker network ls , чтобы перечислить все объявленные сети, каково реальное название сети, объявленной в вашей docker-file.yml , это действительно my-network ?

2. да, это так, и уже проверено, что это bridge сеть.