问题描述
使用docker-compose,我正在尝试创建数据库,我想也许我还有另一个超级用户来处理该错误,但是在检查时
postgres =#\du
List of roles
Role name | Attributes | Member of
-----------+------------------------------------------------------------+-----------
postgres | Superuser,Create role,Create DB,Replication,Bypass RLS | {}
docker-compose.yml
文件:
version: '3.8'
services:
# Backend API
smart-brain-api:
container_name: backend
build: ./
command: npm start
working_dir: /usr/src/smart-brain-api
# environment:
# POSTGRES_USER: test1
# POSTGRES_PASSWORD: test2
# POSTGRES_DB: smart-brain-docker
# POSTGRES_HOST: postgres
# POSTGRES_HOST_AUTH_METHOD: trust
# links:
# - postgres
ports:
- "3001:3001"
volumes:
- ./:/usr/src/smart-brain-api
# Postgres
postgres:
# environment:
# POSTGRES_USER: test1
# POSTGRES_PASSWORD: test2
# POSTGRES_DB: smart-brain-docker
# POSTGRES_HOST: postgres
# POSTGRES_HOST_AUTH_METHOD: trust
image: postgres
ports:
- "5432:5432"
注释掉的东西是我在文件中进一步使用的东西,另外,我自己:POSTGRES_HOST_AUTH_METHOD: trust
建议的东西-没有成功。
我还尝试将POSTGRES_HOST:
更改为postgres1
-以防干扰我的超级用户postgres-不会成功。
我什至尝试将POSTGRES_USER
和POSTGRES_PASSWORD
更改为实际的超级用户用户名和密码。
这是我的Dockerfile
FROM node:alpine
workdir /usr/src/smart-brain-api
copY ./ ./
RUN npm install
CMD ["/bin/bash"]
docker-compose up --build
Successfully tagged smart-brain-api_smart-brain-api:latest
Creating postgres ... done
Creating backend ... done
Attaching to backend,postgres
postgres | Error: Database is uninitialized and superuser password is not specified.
postgres | You must specify POSTGRES_PASSWORD to a non-empty value for the
postgres | superuser. For example,"-e POSTGRES_PASSWORD=password" on "docker run".
postgres |
postgres | You may also use "POSTGRES_HOST_AUTH_METHOD=trust" to allow all
postgres | connections without a password. This is *not* recommended.
postgres |
postgres | See Postgresql documentation about "trust":
postgres | https://www.postgresql.org/docs/current/auth-trust.html
postgres exited with code 1
backend |
当我忽略此错误时,我也注意到了,走得更远,我会仅通过CREATE DATABASE
得到postgres_1
在课程中他得到了:
...
CREATE DATABASE
CREATE ROLE
...
我还在-L
中将package.json
用于nodemon(不确定是否有助于发现问题,我只是想使用它,因为它不会读取我的新更改)。
当我简单地键入psql
时,它将尝试让我使用Windows用户名登录(未设置为postgres用户),因此我必须使用psql -U postgres
登录,即“默认”用户对超级用户造成一些问题?
我将继续尝试与众不同并回报。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)