我開始使用使用Docker的現有Rails項目。我已經使用Rails很長一段時間,但從來沒有Docker。嘗試執行「docker up」時,獲取「FATAL:role」根目錄「不存在」
後,我做了我docker build .
嘗試做一個docker-compose up
,但我得到:
FATAL:角色 「根」 不存在 /usr/local/bundle/gems/activerecord-4.2.5.2 /lib/active_record/connection_adapters/postgresql_adapter.rb:661:in`救援連接「:FATAL:角色‘根’不存在(的ActiveRecord :: NoDatabaseError)
在我看來,該泊塢窗機可能試圖連接到數據庫作爲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"
你的docker-compose.yml是怎麼樣的?您是否使用單獨的容器來存放postgres? –
嘿Lekan!我編輯了我的答案,包括'docker-compose.yml'。我不知道如何知道我是否爲PostgreSQL使用單獨的容器。 –
Yea Jase!所以看起來你使用docker-compose.yml中的不同容器。我想你會用postgres的env vars更新撰寫文件。 –