如何解决无法将Postgresql连接到DOcker-compose
使用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 举报,一经查实,本站将立刻删除。