我正在尝试对nodejs/postgresql应用进行Dockerize,但无法运行
knex
迁移,我得到以下错误:
错误:Connect EconnRejected 172.18.0.2:15432
在tcpconnectwrap.afterconnect[完成时](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
这个
文档文件
对于“应用程序”服务:
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
而且在
开始.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"
所以我可以通过cli连接到postgres,但是knex不能,为什么?我是不是有什么问题,我对Docker不熟悉?
顺祝商祺!