2017-10-15 112 views
1

其實我用下面的碼頭工人,compose.yml文件泊塢窗組成和Postgres官方圖片的環境變量

version: '3.3' 

    services: 
    postgres: 
     container_name: postgres 
     image: postgres:latest 
     restart: always 
     environment: 
     POSTGRES_USER: ${POSTGRES_USER} 
     POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} 
     POSTGRES_DB: ${POSTGRES_DB} 
     PGDATA: /var/lib/postgresql/data/pgdata 
     ports: 
     - "5432:5432" 
     volumes: 
     - ./data/postgres/pgdata:/var/lib/postgresql/data/pgdata 

我也用這個.ENV文件中的泊塢窗,compose.yml文件的同一目錄:

POSTGRES_USER=dbadm 
POSTGRES_PASSWORD=dbpwd 
POSTGRES_DB=db 

然後我運行bash shell中倒入容器中這樣說:

docker exec -ti postgres bash 

這INVO後柯命令:

psql -h postgres -U dbadm db 

而我得到的錯誤:

psql: FATAL: password authentication failed for user "dbadm" 

奇怪的事實是,如果使用默認的圖像參數:

psql -h postgres -U admin database 

而插入默認密碼爲「password 「,它將我記錄下來,似乎忽略了環境變量。

我缺少什麼?

從碼頭工人,組成了日誌的其他日誌:

postgres | 2017-10-15 09:19:15.502 UTC [1] LOG: listening on IPv4 address "0.0.0.0", port 5432 
postgres | 2017-10-15 09:19:15.502 UTC [1] LOG: listening on IPv6 address "::", port 5432 
postgres | 2017-10-15 09:19:15.505 UTC [1] LOG: listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432" 
postgres | 2017-10-15 09:19:15.524 UTC [22] LOG: database system was shut down at 2017-10-15 09:02:21 UTC 
postgres | 2017-10-15 09:19:15.530 UTC [1] LOG: database system is ready to accept connections 

無法看到有關用戶,數據庫以及密碼設置任何「RUN」行。

+0

這是混亂的,你正在嘗試以dbadm身份登錄,但它不起作用,但是您說您可以以管理員身份登錄。你有沒有在你的.env文件中使用管理員用戶? – Sergiu

+0

感謝@Sergiu的興趣,我說它使用圖像的默認值,但它不是我的問題。 – zioMitch

+0

你能運行這個env |嗎?在你的postgres容器中使用grep POSTGR? – Sergiu

回答

0

我已經創建了您提供一個碼頭工人,撰寫陽明與細節.ENV文件,一切工作正常,你從照片上可以看到如下:

enter image description here enter image description here

我想你問題在於當你通過參數-h時。

容器內總是會本地主機然而,外面你將不得不通過:

hostname: postgres 

您的碼頭工人,撰寫文件中,因此將有posrtgres主機名

+0

使用本地主機,它允許本地連接,並完全跳過創建的用戶。問題在於我如何裝入數據目錄。 @sergiu – zioMitch

+0

是的沒錯,你只是使用本地連接,但是,在你的/ etc/hosts文件中,你將不得不添加容器IP和postgres,如下所示: 0.0.0.0 postgres 然後嘗試連接 – Sergiu

+0

很好,似乎設置env變量PGDATA創建了一個在postgres存儲數據庫二進制文件和配置文件(也訪問)的卷。然後,我在本地開發過程中安裝了一個我想要在主機上進行簡化的卷。但安裝音量將覆蓋所有看起來。我錯了嗎? – zioMitch