gpt4 book ai didi

postgresql - 如何将Docker容器连接到远程Postgresql

转载 作者:行者123 更新时间:2023-12-02 21:13:15 26 4
gpt4 key购买 nike

我能够成功将servicebot服务连接到在docker容器内运行的postgresql,但我想将servicebot连接到在实例中即不在docker容器内运行的postgresql。

我已经成功安装了postgresql。我在docker-compose.yml中将与postgrsql相关的环境变量设置为以下行。我如何使docker-compose.yml连接到

docker-compose.yml

version: '2'
services:
servicebot:
image: servicebot/servicebot
environment:
POSTGRES_DB_PORT : "5432"
POSTGRES_DB_HOST : "localhost"
POSTGRES_DB_USER : "servicebot_user"
POSTGRES_DB_PASSWORD : "servicebot_pass"
POSTGRES_DB_NAME : "servicebot_user"
PORT : "3000"
volumes:
- upload-data:/usr/src/app/uploads
- environment-file:/usr/src/app/env
- db-data:/var/lib/postgresql/data
# links:
# - db
ports:
- "80:3000"
- "443:3001"
command: ["sh", "-c", "node /usr/src/app/bin/wait-for-it.js db 5432 && npm run-script start"]

volumes:
upload-data:
environment-file:
db-data:

以前,我有一个名为db的postgresql服务,并通过链接连接到该服务(如您所见),我现在对此进行了注释。

我对Postgresql很陌生,无法找出正确的方法。我尝试了几种方法,但没有成功。

尝试过:
  • 如果实例
  • ,则将 extra_hosts添加到IP
  • 添加host.docker.internal而不是localhost

  • 错误日志:

    On docker logs servicename It does not show anything. The service stops after 29 30 seconds.

    最佳答案

    您的问题是POSTGRES_DB_HOST指向“localhost”,因为“localhost”将是运行当前服务的容器。

    如果您想连接到在主机(localhost)中运行的postgre,我想您可以使用此特殊值host.docker.internal

    关于postgresql - 如何将Docker容器连接到远程Postgresql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53043721/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com