Какую строку подключения Postgres мне следует использовать, если я запускаю многоконтейнерное приложение docker через Dockerrun.aws.js
на AWS ?
У меня есть веб-приложение Node.JS / Postgres / docker.Postgres работает в своем собственном контейнере, как и приложение.Локально, приложение работает нормально.Когда я развертываю его на AWS через ECR и BeanStalk , приложение успешно развертывается и запускается, но веб-приложение не подключается к Postgres.
В docker-compose.yaml
хост в строке подключения - это имя контейнера (в моем случае это будет db ).Это не работает с AWS .Также не localhost
или 127.0.0.1
.
Вот мой Dockerrun.aws.js
:
{
"AWSEBDockerrunVersion": 2,
"volumes": [
{
"name": "db-data",
"host": {
"sourcePath": "/data/db"
}
}
],
"containerDefinitions": [
{
"name": "db",
"image": "db_image_name",
"essential": true,
"memory": 128,
"environment": [
{
"name": "POSTGRES_USER",
"value": "postgres"
},
{
"name": "POSTGRES_PASSWORD",
"value": "password"
},
{
"name": "PGDATA",
"value": "/data/db/pgdata"
}
],
"portMappings": [
{
"hostPort": 5432,
"containerPort": 5432
}
],
"mountPoints": [
{
"sourceVolume": "db-data",
"containerPath": "/data/db"
}
]
},
{
"name": "app",
"image": "app_image_name",
"essential": true,
"memory": 128,
"environment": [
{
"name": "NODE_ENV",
"value": "production"
},
{
"name": "DB_HOST",
"value": "db"
},
{
"name": "DB_PORT",
"value": "5432"
},
{
"name": "DB_PASSWORD",
"value": "password"
}
],
"links": [
"db"
],
"portMappings": [
{
"hostPort": 80,
"containerPort": 3000
}
]
}
]
}
Что я должен поместить в переменную окружения DB_HOST ?( DB_HOST вместе с DB_PORT используются приложением для построения строки подключения.) Большое спасибо.