質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Q&A

0回答

344閲覧

Docker・Rails・Postgresqlでローカルに環境構築実行時「could not connect to server」エラーが発生しデータベースコンテナが起動しない

homareendo

総合スコア9

docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

0グッド

0クリップ

投稿2020/10/15 01:19

編集2020/10/15 09:39

# 前提・実現したいこと
・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

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

homareendo

2020/10/15 09:04

qiita記事紹介ありがとうございます! こちらの記事は一度参照させていただいておりました。 記事内での指摘通りdocker-compose.ymlにおけるデータベースのサービス名「db」とdatabase.ymlのhost名が一致するよう設定しておりますが エラーが発生している状態です。
yasutakatou

2020/10/15 11:50

となるとネットの他事例だと前回変に終了したのでpidが残ってる、またはDBがまだ作られていないというのがありますけど、ご連絡頂いている様子だと既に調査済みですよね?
homareendo

2020/10/15 11:57

エラー解決が孤独すぎるので、たびたびのレスポンス感謝です。 pidの削除はwebサービスのコンテナ起動時にエラーが発生したため実行しましたが、dbサービスでも同様の状況が起こるのでしょうか? db:createコマンドを実行しても同様のエラーが発生しDBが作成されません。
homareendo

2020/10/15 12:06

これでもう少し立ち向かえそうです。 ありがとうございます! dbでのpid削除試してみます。
yasutakatou

2020/10/15 12:11

あ、未対応でしたか、なら是非試して頂けると良いですね!解決できるよう祈ってます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問