Ruby on rails Docker compose给定URI::InvalidURIError:方案postgresql不接受注册表部分:$DB_USER:$DB_PASSWORD@$DB_主机:端口(orbad主机名?)
我正在为ruby应用程序使用多容器。这些容器工作正常,但当使用Ruby on rails Docker compose给定URI::InvalidURIError:方案postgresql不接受注册表部分:$DB_USER:$DB_PASSWORD@$DB_主机:端口(orbad主机名?),ruby-on-rails,docker,docker-compose,Ruby On Rails,Docker,Docker Compose,我正在为ruby应用程序使用多容器。这些容器工作正常,但当使用docker compose运行app rails db:create创建数据库时,我遇到以下错误。 rails中止! URI::InvalidURIError:方案postgresql不接受注册表部分:$DB\u USER:$DB\u PASSWORD@$DB\u主机:端口(orbad主机名?) docker compose文件的一个片段如下所示 db: image: postgres:9.4 volumes_from: - d
docker compose运行app rails db:create创建数据库时,我遇到以下错误。
rails中止!
URI::InvalidURIError:方案postgresql不接受注册表部分:$DB\u USER:$DB\u PASSWORD@$DB\u主机:端口(orbad主机名?)
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
default:&default
适配器:postgresql
模板:template0
编码:unicode
用户名:
数据库:
主持人:
游泳池:5
超时:5000
发展:
您的POSTGRES\u DB
值带有下划线。你有没有试过把它们去掉
带有下划线的主机名有时会出现问题
主机名中的下划线是我的情况。dash还行:|