В настоящее время я начинаю с Docker и пытаюсь адаптировать свое первое приложение с помощью Docker - и Docker -композитного файла.
Кажется, что работает нормально, пока не достигну Точка, где я хочу создать свою базу данных. Я правильно настроил переменные окружения и отразил их в моем файле database.yml
# .env
POSTGRES_USER='deploy'
POSTGRES_PASSWORD='deploy'
POSTGRES_DB='nkbrf_db'
# database.yml
default: &default
adapter: postgresql
encoding: unicode
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
username: <%= ENV['POSTGRES_USERNAME'] %>
password: <%= ENV['POSTGRES_PASSWORD'] %>
database: <%= ENV['POSTGRES_DB'] %>
host: db
development:
<<: *default
test:
<<: *default
production:
<<: *default
Вот мой docker -compose.yml:
version: '3'
services:
db:
image: postgres
volumes:
- 'postgres:/var/lib/postgresql/data'
env_file:
- '.env'
ports:
- "5432"
web:
build: .
command: bash -c "rm -f tmp/pids/server.pid && bundle exec rails s -p 3000 -b '0.0.0.0'"
volumes:
- .:/nkbrfqm
- bundler_gems:/bundle
ports:
- "3000:3000"
environment:
RAILS_ENV: development
depends_on:
- db
volumes:
postgres:
bundler_gems:
Он все настраивает правильно, но если я пытаюсь создать свою базу данных с помощью
docker -compose запустить web rake db: create
, я получаю следующую ошибку:
PG :: ConnectionBad: FATAL: сбой аутентификации по паролю для пользователя "root"
Откуда этот пользователь "root"? Что-то не так с моими настройками переменных среды?