我现在从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:它正确地设置了所有的东西,但是如果我试图创建我的数据库
停靠-编写运行的web rake db:创建
我得到以下错误:
PG::ConnectionBad:致命:用户"root“密码身份验证失败
这个用户“根”从何而来?我的环境变量设置有问题吗?
发布于 2020-04-15 14:03:56
您需要删除.env文件中的单引号.env,然后需要删除复合文件(docker-compose rm)中的所有容器。然后执行docker-compose up -d
示例
# .env
POSTGRES_USER=deploy
POSTGRES_PASSWORD=deploy
POSTGRES_DB=nkbrf_db谢谢
https://stackoverflow.com/questions/61228518
复制相似问题