Docker에서 postgres에 연결할 수 없습니다.

부샨 로다

다음과 같이 docker-compose를 사용하여 Postgres DB를 Rails 앱에 연결하려고합니다.

docker-compose.yml

version: '3.8'
services:
  db:
    image: postgres:12.1
    volumes:
      - pg-data:/var/lib/postgresql/data
    environment:
      POSTGRES_PASSWORD: "password"
  web:
    build: .
    command: bash -c "rm -f tmp/pids/server.pid && bundle exec rails s -p 3000 -b '0.0.0.0'"
    volumes:
      - .:/rails6
    ports:
      - "3000:3000"
    depends_on:
      - db
volumes:
  pg-data:

Dockerfile

FROM ruby:2.5

RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add -
RUN echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list

RUN apt-get update -qq && apt-get install -y nodejs postgresql-client yarn

RUN mkdir /rails6
WORKDIR /rails6

RUN gem install bundler:2

COPY package.json yarn.lock ./
RUN yarn install --check-files

COPY Gemfile* ./
RUN bundle install

COPY . /rails6

EXPOSE 3000

# Start the main process.
CMD ["rails", "server", "-b", "0.0.0.0"]

하지만 실행 docker-compose run web rake db:create하면 다음과 같은 오류가 발생합니다.

ActiveRecord::NoDatabaseError: could not connect to server: No such file or directory
    Is the server running locally and accepting
    connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
/usr/local/bundle/gems/activerecord-6.0.3/lib/active_record/connection_adapters/postgresql_adapter.rb:50:in `rescue in postgresql_connection'
/usr/local/bundle/gems/activerecord-6.0.3/lib/active_record/connection_adapters/postgresql_adapter.rb:33:in `postgresql_connection'
/usr/local/bundle/gems/activerecord-6.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:887:in `new_connection'
/usr/local/bundle/gems/activerecord-6.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:931:in `checkout_new_connection'
/usr/local/bundle/gems/activerecord-6.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:910:in `try_to_checkout_new_connection'
/usr/local/bundle/gems/activerecord-6.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:871:in `acquire_connection'
/usr/local/bundle/gems/activerecord-6.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:593:in `checkout'
/usr/local/bundle/gems/activerecord-6.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:437:in `connection'
/usr/local/bundle/gems/activerecord-6.0.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:1119:in `retrieve_connection'
/usr/local/bundle/gems/activerecord-6.0.3/lib/active_record/connection_handling.rb:221:in `retrieve_connection'
/usr/local/bundle/gems/activerecord-6.0.3/lib/active_record/connection_handling.rb:189:in `connection'
/usr/local/bundle/gems/activerecord-6.0.3/lib/active_record/tasks/postgresql_database_tasks.rb:12:in `connection'
/usr/local/bundle/gems/activerecord-6.0.3/lib/active_record/tasks/postgresql_database_tasks.rb:21:in `create'
/usr/local/bundle/gems/activerecord-6.0.3/lib/active_record/tasks/database_tasks.rb:126:in `create'
/usr/local/bundle/gems/activerecord-6.0.3/lib/active_record/tasks/database_tasks.rb:185:in `block in create_current'
/usr/local/bundle/gems/activerecord-6.0.3/lib/active_record/tasks/database_tasks.rb:479:in `block (2 levels) in each_current_configuration'
/usr/local/bundle/gems/activerecord-6.0.3/lib/active_record/tasks/database_tasks.rb:476:in `each'
/usr/local/bundle/gems/activerecord-6.0.3/lib/active_record/tasks/database_tasks.rb:476:in `block in each_current_configuration'
/usr/local/bundle/gems/activerecord-6.0.3/lib/active_record/tasks/database_tasks.rb:475:in `each'
/usr/local/bundle/gems/activerecord-6.0.3/lib/active_record/tasks/database_tasks.rb:475:in `each_current_configuration'
/usr/local/bundle/gems/activerecord-6.0.3/lib/active_record/tasks/database_tasks.rb:184:in `create_current'
/usr/local/bundle/gems/activerecord-6.0.3/lib/active_record/railties/databases.rake:39:in `block (2 levels) in <top (required)>'

내가 뭔가를 놓치고 있습니까?

Iwnnay

d 나는 매우 유사한 문제가 있었고 DB 호스트를 추가하지 않았다는 것을 깨달았습니다. config/database.yml

default: &default
    adapter: postgresql
    encoding: unicode
    host: db
    # For details on connection pooling, see Rails configuration guide
    # https://guides.rubyonrails.org/configuring.html#database-pooling
    pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
    username: <%= ENV['MYAPP_DATABASE_USERNAME'] %>
    password: <%= ENV['MYAPP_DATABASE_PASSWORD'] %>

"host"의 값은 db입니다. docker-compose.yml

...
services:
  db: # <--- right here
    image: postgres:12.1
    volumes:
      - pg-data:/var/lib/postgresql/data
    environment:
      POSTGRES_PASSWORD: "password"
...

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

postgres에 연결할 수 없습니다

분류에서Dev

Python Docker에서 mqtt Docker로 연결할 수 없습니다.

분류에서Dev

Postgres 서버에 연결할 수 없습니다.

분류에서Dev

Node.js에서 MySQL Docker에 연결할 수 없습니다

분류에서Dev

Elastic Beanstalk Docker에서 RDS에 연결할 수 없습니다.

분류에서Dev

Docker의 Cassandra는 외부에서 연결할 수 없습니다.

분류에서Dev

ECS에서 연결된 Docker 컨테이너에 연결할 수 없습니다.

분류에서Dev

CentOS 6.5의 PHP는 Postgres DB에 연결할 수 없습니다.

분류에서Dev

psycopg2 / psql이 postgres db에 연결할 수 없습니다.

분류에서Dev

Postgres 인스턴스에 연결할 수 없습니다.

분류에서Dev

Steam에 연결할 수 없습니다

분류에서Dev

Skype에 연결할 수 없습니다.

분류에서Dev

BFD에 연결할 수 없습니다.

분류에서Dev

URL에 연결할 수 없습니다.

분류에서Dev

192.168.1.1에 연결할 수 없습니다.

분류에서Dev

PPPOE에 연결할 수 없습니다.

분류에서Dev

Websocket에 연결할 수 없습니다.

분류에서Dev

sparkSQL에 연결할 수 없습니다.

분류에서Dev

FXCM 연결 오류-서버에 연결할 수 없습니다.

분류에서Dev

연결된 서버에 연결할 수 없습니다.

분류에서Dev

Golang 컨테이너에서 Postgres Docker 컨테이너에 연결할 수 없습니다.

분류에서Dev

Docker 컨테이너에서 Go 서버에 연결할 수 없습니다.

분류에서Dev

서버의 postgres를 내 로컬의 postico에 연결할 수 없습니다.

분류에서Dev

postgres_fdw 오류가 서버에 연결할 수 없습니다.

분류에서Dev

Spring Boot를 통해 Docker Desktop Kubernetes (Windows) 서비스를 로컬 Postgres DB에 연결할 수 없습니다.

분류에서Dev

Docker에서 ssh를 통해 Corda 노드에 연결할 수 없습니다.

분류에서Dev

docker-compose에서 실행중인 MongoDB에 연결할 수 없습니다.

분류에서Dev

OS X에서 게시 된 Docker 포트에 연결할 수 없습니다.

분류에서Dev

Docker : 호스트에서 컨테이너에 연결할 수 없습니다.

Related 관련 기사

  1. 1

    postgres에 연결할 수 없습니다

  2. 2

    Python Docker에서 mqtt Docker로 연결할 수 없습니다.

  3. 3

    Postgres 서버에 연결할 수 없습니다.

  4. 4

    Node.js에서 MySQL Docker에 연결할 수 없습니다

  5. 5

    Elastic Beanstalk Docker에서 RDS에 연결할 수 없습니다.

  6. 6

    Docker의 Cassandra는 외부에서 연결할 수 없습니다.

  7. 7

    ECS에서 연결된 Docker 컨테이너에 연결할 수 없습니다.

  8. 8

    CentOS 6.5의 PHP는 Postgres DB에 연결할 수 없습니다.

  9. 9

    psycopg2 / psql이 postgres db에 연결할 수 없습니다.

  10. 10

    Postgres 인스턴스에 연결할 수 없습니다.

  11. 11

    Steam에 연결할 수 없습니다

  12. 12

    Skype에 연결할 수 없습니다.

  13. 13

    BFD에 연결할 수 없습니다.

  14. 14

    URL에 연결할 수 없습니다.

  15. 15

    192.168.1.1에 연결할 수 없습니다.

  16. 16

    PPPOE에 연결할 수 없습니다.

  17. 17

    Websocket에 연결할 수 없습니다.

  18. 18

    sparkSQL에 연결할 수 없습니다.

  19. 19

    FXCM 연결 오류-서버에 연결할 수 없습니다.

  20. 20

    연결된 서버에 연결할 수 없습니다.

  21. 21

    Golang 컨테이너에서 Postgres Docker 컨테이너에 연결할 수 없습니다.

  22. 22

    Docker 컨테이너에서 Go 서버에 연결할 수 없습니다.

  23. 23

    서버의 postgres를 내 로컬의 postico에 연결할 수 없습니다.

  24. 24

    postgres_fdw 오류가 서버에 연결할 수 없습니다.

  25. 25

    Spring Boot를 통해 Docker Desktop Kubernetes (Windows) 서비스를 로컬 Postgres DB에 연결할 수 없습니다.

  26. 26

    Docker에서 ssh를 통해 Corda 노드에 연결할 수 없습니다.

  27. 27

    docker-compose에서 실행중인 MongoDB에 연결할 수 없습니다.

  28. 28

    OS X에서 게시 된 Docker 포트에 연결할 수 없습니다.

  29. 29

    Docker : 호스트에서 컨테이너에 연결할 수 없습니다.

뜨겁다태그

보관