泊坞窗组成和Postgres官方图片的环境变量
问题描述:
其实我用下面的码头工人,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”行。
答
我已经创建了您提供一个码头工人,撰写阳明与细节.ENV文件,一切工作正常,你从照片上可以看到如下:
我想你问题在于当你通过参数-h时。
容器内总是会本地主机然而,外面你将不得不通过:
hostname: postgres
您的码头工人,撰写文件中,因此将有posrtgres主机名
这是混乱的,你正在尝试以dbadm身份登录,但它不起作用,但是您说您可以以管理员身份登录。你有没有在你的.env文件中使用管理员用户? – Sergiu
感谢@Sergiu的兴趣,我说它使用图像的默认值,但它不是我的问题。 – zioMitch
你能运行这个env |吗?在你的postgres容器中使用grep POSTGR? – Sergiu