簡體   English   中英

Rails 6 Docker 與 PostgreSQL 連接錯誤

[英]Rails 6 Docker with PostgreSQL Connection Error

我目前從 Docker 開始,並嘗試使用 Docker- 和 Docker-compose 文件調整我的第一個應用程序。

它似乎工作正常,直到我達到我想要創建我的數據庫的地步。 我正確設置了環境變量並將它們反映在我的 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:

它正確設置了所有內容,但是如果我嘗試使用

docker-compose 運行 web rake db:create

我收到以下錯誤:

PG::ConnectionBad: FATAL: 用戶“root”的密碼認證失敗

這個用戶“root”來自哪里? 我的環境變量設置有問題嗎?

您需要刪除.env文件中的單引號'然后您需要刪除撰寫文件中的所有容器( docker-compose rm )。 然后執行docker-compose up -d

例子

#.env

POSTGRES_USER=deploy POSTGRES_PASSWORD=deploy POSTGRES_DB=nkbrf_db

謝謝

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM