ydb
ydb copied to clipboard
Docker-compose doesn't work with DNS resolution failed error
Добрый день,
Пытаюсь запустить YDB через docker-compose аналогично тому, как указано здесь https://ydb.tech/docs/ru/quickstart с таким конфигом
ydb:
container_name: ydb-local
image: cr.yandex/yc/yandex-docker-local-ydb:latest
platform: linux/amd64
environment:
<<: *x-ydb-environment
ports:
- "2135:2135"
- "2136:2136"
- "8765:8765"
volumes:
- ydb_certs:/ydb_certs
- ydb_data:/ydb_data
networks:
app_network:
aliases:
- ydb.lvh.me
Если контейнеры общаются между собой, то все ОК. Но, если я пытаюсь законнектится из программы, которая работает не в контейнере (при локальной разработке). Получаю такую ошибку
<main>: Error: GRpc error: (14): failed to connect to all addresses; last error: UNKNOWN: ipv4:127.0.0.1:2136: Ssl handshake failed: SSL_ERROR_SSL: error:1408F10B:SSL routines:ssl3_get_record:wrong version number
<main>: Error: Grpc error response on endpoint localhost:2136
<main>: Error: Endpoint list is empty for database /local, cluster endpoint localhost:2136.
Проблема возникает из-за того, что нода имеет свое имя (каждый раз случайное), которое добавляется докером в DNSNames контейнера, но не добавляется в Aliases и поэтому не пингуется.
Аналогичная проблема с Kuber была описана здесь https://github.com/ydb-platform/ydb/issues/108
На данный момент решил проблему локальной разработки добавлением hostname: localhost который нужно убирать при деплое
Можно ли как-то решить данную проблему, чтобы docker-compose был одинаковым и для development, и для production