微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无法将Postgresql连接到DOcker-compose

如何解决无法将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_USERPOSTGRES_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 举报,一经查实,本站将立刻删除。