这是我的docker compose文件:
version: '3.1'
services:
db:
image: postgres
restart: always
ports:
- 5432:5432
environment:
POSTGRES_PASSWORD: authdb
adminer:
image: adminer
restart: always
ports:
- 8080:8080
无论我在容器中键入什么...似乎都没有用户存在:
psql -U postgres
或
psql -U authdb
或
psql
或
psql -U root
或
psql -U test
无论如何,你会明白的。
用户是什么?
我正在使用最新版本的postgres,就像您在docker compose文件中看到的一样。
我可以列出用户吗?也许是docker postgres中的错误?
答案 0 :(得分:0)
根据image description,应为“ postgres”,更多:
POSTGRES_USER
此可选的环境变量与POSTGRES_PASSWORD结合使用以设置用户及其密码。此变量将创建具有超级用户权限的指定用户和具有相同名称的数据库。如果未指定,则将使用 默认用户postgres
。
(我强调)
答案 1 :(得分:0)
这是解决方案:
help
似乎,如果您不指定数据库名称,它将无法正常工作。
我认为是因为它认为用户名和数据库名称是相同的。
非常奇怪,因为我在网上看到的示例都没有提到这一点。
另外,就像@hakre所说的那样,默认用户是psql -U test --dbname=authdb
。
第一次构建时,我以postgres
作为用户名和密码。
这就是为什么在我的解决方案中我使用测试的原因。