サーバーがホスト "localhost"(::1) で稼働しており、ポート 5432 で TCP/IP 接続を許可するかどうか

サーバーがホスト "localhost"(::1) で稼働しており、ポート 5432 で TCP/IP 接続を許可するかどうか

次のコマンドを使用して、Ruby / Dockerコンテナ内のPostgresデータベースに接続しようとしています。

docker-compose run app rails db:setup

ちょうど私のスタック追跡レポート;-

Starting reptrax-uk_postgres_1 ... done
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?
Couldn't create database for {"host"=>"localhost", "port"=>5432, "adapter"=>"postgresql", "encoding"=>"unicode", "database"=>"development", "pool"=>10, "username"=>"user", "password"=>"secret"}
rails aborted!
PG::ConnectionBad: 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?

だから私は

netstat -antu | grep 5432

問題のあるポートに関連するものがあることを確認しましたが、何もない場合は空白が返されます。

これは私のスナップショットです。docker-compose.yml

version: '3'

services:
  app:
    build: .
    command: sh -c "rm -f tmp/pids/server.pid && bundle exec rails s -p 3000 -b '0.0.0.0'"
    environment:
      - RABBITMQ_HOST=rabbitmq
      - MONGO_HOST=mongo
      - POSTGRES_HOST=postgres
      - POSTGRES_USER=postgres
      - POSTGRES_PASS=
    volumes:
      - .:/app
      - bundle:/bundle
      - node_modules:/app/node_modules
    ports:
      - "3000:3000"
    depends_on:
      - postgres
      - mongo
      - rabbitmq
      - redis
      - chrome
  postgres:
    image: postgres:9.5
    ports:
      - "5432:5432"
  mongo:
    image: mongo
    ports:

私は昨日、以下を含むさまざまなdockerコマンドを試しました。

docker-compose stop
docker-compose down
docker system prune
docker pull postgres:9.5

しかし、まだ喜びはありません。

問題を解決できますか?

答え1

私のために働く; -

postgres設定の下に次の項目を追加しますdocker-compose.yml

postgres:
    image: postgres:9.5
    environment:
      - POSTGRES_HOST_AUTH_METHOD=trust
    ports:
      - "5432:5432"

その後、ターミナルで - 続行; -

docker-compose down
docker container stop $(docker container ls -aq)
docker network create x_middleware
docker network create foo
docker-compose build
docker-compose run app bin/rails db:setup profiles:build
docker-compose run app bin/rails profiles:build
docker-sync-stack start

関連情報