Я использую несколько контейнеров для приложения ruby.Контейнеры работают нормально, но когда дело доходит до создания базы данных с использованием docker-compose run app rails db:create
, я получаю следующую ошибку.rails aborted!
URI::InvalidURIError: the scheme postgresql does not accept registry part: $DB_USER:$DB_PASSWORD@$DB_HOST:port (orbad hostname?)
.
Ниже показан фрагмент файла docker-compose
db:
image: postgres:9.4
volumes_from:
- data
environment:
POSTGRES_USER: cpostgres
POSTGRES_DB: micro_login_db
ports:
- 5432
app:
build: .
depends_on:
- db
volumes:
- .:/webapp
command: rails server -p 3000 -b 0.0.0.0
ports:
- 3000:3000
environment:
DB_HOST: db
DB_USER: cpostgres
POSTGRES_DB: micro_login_db
POSTGRES_TEST_DB: micro_login_test
Кто-то еще предложил мне создать файл с именем application.yml
со следующими сведениями
DB_USER: 'cpostgres'
DB_PASSWORD: ''
DB_HOST: 'db'
POSTGRES_DB: 'micro_login_db'
port: 5432
И, наконец, database.yml
файл
default: &default
adapter: postgresql
template: template0
encoding: unicode
username: <%= ENV['DB_USER'] %>
database: <%= ENV['POSTGRES_DB'] %>
host: <%= ENV['DB_HOST'] %>
pool: 5
timeout: 5000
development:
<<: *default
Вопрос в том, почему я получаю эту ошибку?Как я могу решить это?Любая помощь будет принята с благодарностью.