Postgres在端口5432上不接受TCP / IP

时间:2019-10-21 17:25:12

标签: postgresql docker

我有这个docker-compose.yml文件:

inbound data

从Postgres收到错误消息:

version: '3.7'

services:

  users:
    build:
      context: ./services/users
      dockerfile: Dockerfile-prod
    expose:
      - 5000
    environment:
      - FLASK_ENV=production
      - APP_SETTINGS=project.config.ProductionConfig
      - DATABASE_URL=postgres://postgres:postgres@users-db:5432/users_prod
      - DATABASE_URL_DEPTS=postgres://postgres:postgres@users-db:5432/depts_prod
      - DATABASE_TEST_URL=postgres://postgres:postgres@users-db:5432/users_test
      - DATABASE_TEST_URL_DEPTS=postgres://postgres:postgres@users-db:5432/depts_test
    depends_on:
      - users-db

  users-db:
    build:
      context: ./services/users/project/db
      dockerfile: Dockerfile
    expose:
      - 5432
    environment:
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=postgres

  nginx:
    build:
      context: ./services/nginx
      dockerfile: Dockerfile-prod
    restart: always
    ports:
      - 80:80
    depends_on:
      - users

端口5432被定义为公开的,为什么它不接受连接?在开发过程中,我在Postgres上使用“ 5436:5432”,在Flask应用程序上使用“ 5000:5001”,效果很好。

Flask应用程序的Dockerfile:

(psycopg2.OperationalError) could not connect to server: Connection refused
    Is the server running on host "users-db" (172.19.0.2) and accepting
    TCP/IP connections on port 5432?

Postgres的Dockerfile:

FROM python:3.6.9-slim

RUN apt-get update && \
    apt-get install -y netcat && \
    apt-get clean

RUN mkdir /usr/src/app
WORKDIR /usr/src/app

COPY ./requirements.txt /usr/src/app/requirements.txt
RUN pip install -r requirements.txt

COPY ./entrypoint.sh /usr/src/app/entrypoint.sh
RUN chmod +x /usr/src/app/entrypoint.sh

COPY . /usr/src/app

CMD ["/usr/src/app/entrypoint-prod.sh"]

入口点:

FROM postgres:11.2-alpine

ADD users/create.sql /docker-entrypoint-initdb.d

0 个答案:

没有答案