ruby-on-rails – 在尝试“docker up”时获取“致命:角色”根“
我开始使用现有的使用Docker的Rails项目.我已经使用Rails很长一段时间但从未使用过Docker.
在我做了一个docker build之后.我尝试做一个docker-compose,但我得到:
在我看来,Docker机器可能试图以root用户身份连接到数据库,但是没有名为root的角色,因此连接正确失败. 我不知道的是为什么Docker显然试图以root身份连接数据库,以及如何让它使用正确的用户. 这是我的database.yml: development: database: my_app_development adapter: postgresql encoding: unicode pool: 5 任何帮助表示赞赏. 编辑:这是我的docker-compose.yml: web: build: . volumes: - .:/my_app ports: - "3000:3000" links: - postgres - redis - mailcatcher env_file: - 'config/application.yml' postgres: image: postgres:9.4 ports: - "5432" env_file: - 'config/database.yml' redis: image: redis:3.0.6 mailcatcher: image: schickling/mailcatcher ports: - "1080:1080" 解决方法
您可能希望更新compose和数据库yml,如下所示.使用database.yml中的预期db用户和密码.此外,您可以使这是一个环境变量.但首先尝试使用postgres db docker映像的默认值,如下所示;
database.yml的 development: database: my_app_development adapter: postgresql encoding: unicode pool: 5 username: postgres password: host: postgres(db name in docker-compose.yml) 泊坞窗,compose.yml web: build: . command: bundle exec rails s -p 3000 -b '0.0.0.0' volumes: - .:/my_app ports: - "3000:3000" links: - postgres - redis - mailcatcher postgres: image: postgres:9.4 ports: - "5432" redis: image: redis:3.0.6 mailcatcher: image: schickling/mailcatcher ports: - "1080:1080" 我不认为你想留下来 env_file: - 'config/database.yml' 和 env_file: - 'config/application.yml' 然后使用docker-compose运行web rake db:create创建数据库 我添加了命令指令,因为我不知道您的Dockerfile是什么样的.但是如果您使用docker build -t app-name成功构建了应用程序映像,则可以将其删除并运行docker-compose. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |