修改主机ip连接到服务器上,服务器是否在主机“localhost”(:: 1)上运行,并接受端口5432上的TCP/IP连接?...

在尝试使用Ruby on Rails和Docker配置本地开发环境时,遇到Postgres数据库连接失败的问题。错误提示表明无法连接到'localhost'(127.0.0.1和::1)上的5432端口。Dockerfile中包含了安装各种依赖,如Ruby、Nginx、Postgres等,并设置了数据卷和网络连接。尽管`docker-compose build`和`docker-compose up -d`命令成功运行,但通过URL访问时返回内部服务器错误。建议检查Docker容器间的网络配置,确保Postgres容器的名称正确,并使用容器名而非'localhost'进行连接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我在使用Ruby on Rail设置和运行本地系统上的docker实例时遇到了问题。请参阅我的搬运工配置文件: -服务器是否在主机“localhost”(:: 1)上运行,并接受端口5432上的TCP/IP连接?

Dockerfile

FROM ruby:2.3.1

RUN useradd -ms /bin/bash web

RUN apt-get update -qq && apt-get install -y build-essential

RUN apt-get -y install nginx

RUN apt-get -y install sudo

# for postgres

RUN apt-get install -y libpq-dev

# for nokogiri

RUN apt-get install -y libxml2-dev libxslt1-dev

# for a JS runtime

RUN apt-get install -y nodejs

RUN apt-get update

# For docker cache

WORKDIR /tmp

ADD ./Gemfile Gemfile

ADD ./Gemfile.lock Gemfile.lock

ENV BUNDLE_PATH /bundle

RUN gem install bundler --no-rdoc --no-ri

RUN bundle install

# END

ENV APP_HOME /home/web/cluetap_app

RUN mkdir -p $APP_HOME

WORKDIR $APP_HOME

ADD . $APP_HOME

RUN chown -R web:web $APP_HOME

ADD ./nginx/nginx.conf /etc/nginx/

RUN unlink /etc/nginx/sites-enabled/default

ADD ./nginx/cluetap_nginx.conf /etc/nginx/sites-available/

RUN ln -s /etc/nginx/sites-available/cluetap_nginx.conf /etc/nginx/sites-enabled/cluetap_nginx.conf

RUN usermod -a -G sudo web

泊坞窗,compose.yml

version: '2'

services:

postgres:

image: 'postgres:9.6'

environment:

- PGDATA=/var/lib/postgresql/data/pgdata

- POSTGRES_PASSWORD=

- POSTGRES_USER=postgres

- POSTGRES_HOST=cluetapapi_postgres_1

networks:

- default

- service-proxy

ports:

- '5432:5432'

volumes:

- 'postgres:/var/lib/postgresql/data'

labels:

description: "Postgresql Database"

service: "postgresql"

web:

container_name: cluetap_api

build: .

command: bash -c "thin start -C config/thin/development.yml && nginx -g 'daemon off;'"

volumes:

- .:/home/web/cluetap_app

ports:

- "80:80"

depends_on:

- 'postgres'

networks:

service-proxy:

volumes:

postgres:

当我运行泊坞窗 - 撰写建和泊坞窗,构成了-d这两个命令它成功运行,但是当我从url中击中它时,它会导致内部服务器错误并且错误是

Unexpected error while processing request: could not connect to server: Connection refused

Is the server running on host "localhost" (127.0.0.1) and accepting

TCP/IP connections on port 5432?

could not connect to server: Cannot assign requested address

Is the server running on host "localhost" (::1) and accepting

TCP/IP connections on port 5432?

我已经应用了一些解决方案,但它不适用于我,请指导我我是码头工人和AWS的新手。

+0

码头日志cluetap_api的输出是什么?我会建议给你的postgres一个容器名如:my-postgres。您可以使用my-postgres:5432从您的api-container连接到您的postgres,因为它们部署在同一个网络中。你甚至不需要映射端口。 –

+0

如果要映射端口,则可以使用server-ip:5432从您的api-container连接。比你的容器不需要在同一个网络内。 –

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值