Я пытаюсь докеризировать приложение NodeJS / PostgreSQL, но я не могу запустить knex
миграции, я получаю следующую ошибку:
Ошибка: подключение ECONNREFUSED 172.18.0.2: 15432в TCPConnectWrap.afterConnect [как oncomplete] (net.js: 1161: 14)
Вот мой docker-compose.yml :
version: "3"
services:
app:
build: .
depends_on:
- db
links:
- db
ports:
- "3000:3000"
environment:
POSTGRES_PASSWORD: postgres
POSTGRES_USER: postgres
POSTGRES_DB: users-microservice
DB_HOST: db
db:
image: postgres:10.4-alpine
expose:
- "5432"
ports:
- "15432:5432"
environment:
POSTGRES_PASSWORD: postgres
POSTGRES_USER: postgres
POSTGRES_DB: users-microservice
Dockerfile для службы 'app':
FROM node:10.1-alpine
EXPOSE 3000 9229 15432
COPY . /home/app
WORKDIR /home/app
RUN npm install
RUN npm install -g knex
CMD ./scripts/start.sh
и в start.sh работает следующая команда:
until PGPASSWORD=$POSTGRES_PASSWORD psql -h "$DB_HOST" -U "$POSTGRES_USER" -c '\d'; do
>&2 echo "Postgres is unavailable - sleeping"
sleep 1
done
>&2 echo "Postgres is up - executing command"
Так что я могу подключиться к postgres через CLI, но knex не может, почему это так?Я что-то не так понимаю, я новичок в Docker?
С уважением,