Docker镜像postgres:11.7-alpine可以同时与两个服务器对话吗?

问题描述 投票:0回答:1

当我试图连接到我的postgres实例时,我遇到了一个连接错误,该实例是一个容器内的postgres:11.7-alpine镜像。

我的理解是,我有一个代码库。

  1. 我有一个代码库

  2. 我有一个容器,里面运行着postgres:11.7-alpine镜像,端口是5432:5432。

  3. 我有一个容器,里面有一个从上面第1点的代码库构建的镜像,运行在8000:8000端口。

在容器内部,一切都运行得很好(也就是说没有错误,postgress连接到第3点。我使用了 docker-compose up --build

当我试图启动我的代码库(第1点)时,它得到一个连接错误。我怀疑它正试图连接到postgres(第2点),但容器内的postgres已经连接到我的复制代码库(第3点)。

如何复制

docker-compose up --build

结果一切正常

然后我启动了我的代码库(第1点),它得到了一个连接错误。

期待行为

docker-compose up --build结果一切正常然后我启动了我的代码库(第1点),也能够连接到docker容器内的postgres实例。

version: '3.6'
services:

  # App Backend PostgreSQL
  postgres:
    container_name: sportsAppApiDb
    image: postgres:11.7-alpine
    environment:
      POSTGRES_USER: admin
      POSTGRES_PASSWORD: password
      POSTGRES_URL: postgres://admin:password@localhost:5432/sportsappapi
      POSTGRES_DB: sportsappapi
      POSTGRES_HOST: postgres
    ports:
      - "5432:5432"

  # App Backend
  sports-app-api:
    container_name: sportsAppApi
    build: ./
    volumes:
      - ./:/usr/src/sports-app-api
    command: sbt run
    working_dir: /usr/src/sports-app-api
    ports:
      - "8000:8000"
    environment:
      POSTGRES_URI: postgres://admin:password@postgres:5432/sportsappapi
docker docker-compose dockerfile docker-machine
1个回答
0
投票

好吧,你想连接到 postgres 从一个docker容器以及从一个正在IDE中运行的应用程序。由于你将postgres端口从容器绑定到主机上,要连接另一个应用程序,你可以使用 5432 主机的端口。

IDE中代码库的连接字符串为

postgres://admin:[email protected]:5432/sportsappapi

但这只有在以下情况下才会有效 docker-compose up --build 是启动和运行。

© www.soinside.com 2019 - 2024. All rights reserved.