Как подключиться из Docker к внешней БД? Например, к существующему Postgresql и Redis.
Существующий docker-compose:
version: '3'
services:
web:
build: .
ports:
- "3000:3000"
image: my-app:${CORE_TAG-latest}
network_mode: "host"
Получаю ошибку, при подключении к Redis:
Could not establish a connection with redis. Error: connect ECONNREFUSED 127.0.0.1:6379
Сейчас Redis на той же машине, но все равно приложение в Докере не видит его.
UPD 1:
version: '3.9'
services:
web:
build: .
image: my-app:${CORE_TAG-latest}
environment:
REDIS_HOST: 0.0.0.0
extra_hosts:
- "host.docker.internal:host-gateway"
Выдает ошибку
Could not establish a connection with redis. Error: connect ECONNREFUSED 0.0.0.0:6379
UPD 2:
version: '3.9'
services:
web:
build: .
image: my-app:${CORE_TAG-latest}
extra_hosts:
- "host.docker.internal:host-gateway"
Тоже не работает:
Could not establish a connection with redis. Error: connect ECONNREFUSED 127.0.0.1:6379
UPD 3:
Похоже, что-то с сетью на машине:
cat /etc/docker/daemon.json
{
"bip": "172.21.0.1/16",
"default-address-pools":[
{"base":"172.22.0.0/16","size":24},
{"base":"172.23.0.0/16","size":24}
]
}
docker inspect bridge | jq '.[].IPAM.Config'
[
{
"Subnet": "172.17.0.0/16"
}
]
Как-то надо править host из списка docker network list ?