Эта ошибка выглядит так, как будто она не пересылает порт для postgres, попробуйте изменить docker-compose для переадресации порта
У меня нет большого опыта работы с Docker, но я думаю, вы обнаружите, что ваша база данных не сохраняется, когда вы перезапускаете контейнеры Docker. Я бы предложил использовать внешний объем для дБ
Ваш Dockerfile выглядит нормально
Если кто-то с большим опытом видит это, пожалуйста, подтвердите в комментариях
докер-compose.yml
version: '3'
services:
web:
build: .
command: bundle exec rails s -p 3000 -b '0.0.0.0'
volumes:
- .:/myapp
ports:
- "3000:3000"
depends_on:
- db
db:
image: postgres
volumes:
- pg-db:/var/lib/postgresql/data
- ../db:/db
ports:
- "5432:5432"
volumes:
pg-db:
external: true
database.yml
default: &default
adapter: postgresql
encoding: unicode
host: db
username: postgres
pool: 5
development:
<<: *default
database: myapp_development
Dockerfile
FROM ruby:2.5.3
RUN apt-get update && apt-get install -y build-essential libpq-dev nodejs
RUN mkdir /myapp
WORKDIR /myapp
COPY Gemfile /myapp/Gemfile
COPY Gemfile.lock /myapp/Gemfile.lock
RUN bundle install
COPY . /myapp