# 前提・実現したいこと
・Docker・Rails・Postgresqlでローカルに開発環境を構築したい
・必要なファイルを準備しdocker-composeのコマンドで環境構築を実行した際にdbコンテナが起動しないエラーが発生した
発生している問題・エラーメッセージ
行った作業の流れ
①dockerfile等必要なファイル作成
②dokcer-compose up -d --build
③docker-compose run web bundle exec rails db:create
※③のコマンド実行時に下記のエラーが発生しdbのコンテナが起動しない
PG::ConnectionBad: could not connect to server: Connection refused Is the server running on host "db" (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 "db" (::1) and accepting TCP/IP connections on port 5432?
各種ファイル
dockerfile
FROM ruby:2.5.1 RUN apt-get update && apt-get install -y nodejs --no-install-recommends && rm -rf /var/lib/apt/lists/* RUN apt-get update && apt-get install -y postgresql-client --no-install-recommends && rm -rf /var/lib/apt/lists/* RUN apt-get update -qq && apt-get install -y build-essential libpq-dev nodejs WORKDIR /myproject COPY Gemfile /myproject/Gemfile COPY Gemfile.lock /myproject/Gemfile.lock RUN bundle install COPY . /myproject
docker-compose.yml
version: '3' services: db: image: postgres ports: - '5432:5432' volumes: - postgresql-data:/var/lib/postgresql/data web: build: context: . dockerfile: Dockerfile command: bundle exec rails s -p 3000 -b '0.0.0.0' tty: true stdin_open: true depends_on: - db ports: - "3000:3000" volumes: - .:/myproject volumes: postgresql-data: driver: local
database.yml
default: &default adapter: postgresql encoding: unicode host: db username: nursing-request password: pool: 5 port: 5432 development: <<: *default database: nursing-request_development test: <<: *default database: nursing-request_test production: <<: *default adapter: postgresql encoding: unicode pool: 5 username: nursing-request password: <%= ENV['NURSING-REQUEST_DATABASE_PASSWORD'] %>
試したこと
①database.ymlのhost名とport番号の記載に誤りはないか
→host名はdbサービス名を記述している。port番号もdocker-compose.ymlの設定と同じであることを確認
②postgresqlを実行していない?
ターミナル
$ pg_ctl -D /usr/local/var/postgres status pg_ctl: server is running (PID: 9635) /usr/local/Cellar/postgresql/12.3_4/bin/postgres "-D" "/usr/local/var/postgres"
→postgresqlは実行されている
補足情報(FW/ツールのバージョンなど)
OS:mac Catalina バージョン 10.15.7
DB:Postgresql
Ruby on Rails
あなたの回答
tips
プレビュー