我正在尝试使用custum用户和数据库创建一个简单的postgreSQL容器.
这是我的docker-compose文件:
version: '2'
services:
db.postgres:
container_name: db.postgres
image: postgres:10
environment:
- POSTGRES_USER:'myuser'
- POSTGRES_PASSWORD:'myuserpassword'
- POSTGRES_DB:'mydb'
ports:
- '5432:5432'
volumes:
- ./pgdata:/var/lib/postgresql/data
Run Code Online (Sandbox Code Playgroud)
当我尝试连接到我的数据库时出错.
docker exec -it db.postgres psql -U myuser myuserpassword
psql: FATAL: role "myuser" does not exist
Run Code Online (Sandbox Code Playgroud)
要么
$ docker exec -it db.postgres /bin/bash
root@1a0531e0350f:/# psql -U myuser
psql: FATAL: role "myuser" does not exist
Run Code Online (Sandbox Code Playgroud)
创建数据库时,似乎忽略了Docker-compose环境变量.
我不知道我能做什么.你对这个问题有所了解吗?
谢谢 !
编辑:Docker 似乎没有创建我的 postgres 数据库,即使我在我的.env文件中定义了它们。
我已经使用过docker-compose config,看起来 Docker 认可了我的数据:
environment:
POSTGRES_DB: animemusicsorter
POSTGRES_PASSWORD: root
POSTGRES_USER: waifuszn
Run Code Online (Sandbox Code Playgroud)
但是当我运行时docker-compose up,出现以下错误:
postgres | 2021-07-12 22:39:01.906 UTC [35] FATAL: password authentication failed for user "waifuszn"
postgres | 2021-07-12 22:39:01.906 UTC [35] DETAIL: Role "waifuszn" does not exist.
Run Code Online (Sandbox Code Playgroud)
我尝试删除卷并删除postgres并重新创建它们,但这也没有给我任何结果。
docker-compose.yml
version: '3.5'
services:
postgres:
container_name: postgres
image: postgres:11.6
ports:
- "5432:5432"
environment:
POSTGRES_PASSWORD: ${DB_PASSWORD}
POSTGRES_DB: ${DB_NAME}
POSTGRES_USER: ${DB_USER}
volumes:
- ~/srv/docker/template-postgres/data:/var/lib/postgresql/data:rw
django:
container_name: django
build:
context: .
dockerfile: …Run Code Online (Sandbox Code Playgroud)