Попытался подключиться к моему экземпляру RDS Postgres из клиента postgres (образ Docker) ...
docker run -it --rm jbergknoff/postgresql-client postgresql://username:******@somepostgres.sometext.us-west-2.rds.amazonaws.com:5432
и все работает ...
Когда я пробую его с typeorm ... он жалуется на geotddrinfo ENOTFOUND.
Вот мой вариант подключения:
{
type: 'postgres',
logging: true,
host: process.env.DB_HOST,
port: 5432,
username: process.env.DB_USERNAME,
password: process.env.DB_PASSWORD,
database: process.env.DB_NAME,
entities: [__dirname + '/**/*.entity{.ts,.js}'],
synchronize: true,
extra: {
ssl: true
}
}
И это ошибка:
[Nest] 25882 - 06/09/2019, 12:19 PM [TypeOrmModule] Unable to connect to the database. Retrying (1)... +3291ms
Error: getaddrinfo ENOTFOUND postgres.sometext.us-west-2.rds.amazonaws.com postgres.sometext.us-west-2.rds.amazonaws.com.com:5432
at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:58:26)
EDIT:
Когда я использую IP. оно работает. Но все же любопытно ... почему адрес не работает, хотя.
РЕДАКТИРОВАТЬ 2:
Нашел это. Мой локальный узел js не может подключиться к RDS, поскольку мой сервер имен настроен неправильно.
Чтобы исправить это в Linux, вы делаете это так,
# /etc/resolv.conf
# I use google here
nameserver 8.8.8.8
namaserver 8.8.4.4
И причина, по которой я могу получить к ней доступ из докера, полагаю, у докера есть собственная конфигурация сервера имен.