您好,我在运行docker-compose build后收到此错误
但是我得到这个错误 postgres_1 |错误:数据库尚未初始化,并且未指定超级用户密码。
下面是我的docker-compose.yml文件
版本:“ 3.6”
services:
smart-brain-api:
container_name: backend
build: ./
command: npm start
working_dir: /usr/src/smart-brain-api
ports:
- "3000:3000"
volumes:
- ./:/usr/src/smart-brain-api
#PostGres Database
postgres:
image: postgres
ports:
- "5432:5432"
答案 0 :(得分:25)
可以通过对POSTGRES_HOST_AUTH_METHOD
进行以下更改来使用docker-compose.yml
环境属性。
db:
image: postgres:9.6-alpine
environment:
POSTGRES_DB: "db"
POSTGRES_HOST_AUTH_METHOD: "trust"
以上内容将解决错误。
答案 1 :(得分:17)
为避免这种情况,您可以在docker-compose文件中为postgres容器指定以下环境变量。
POSTGRES_PASSWORD 使用PostgreSQL映像通常需要此环境变量。此环境变量设置PostgreSQL的超级用户密码。默认的超级用户由POSTGRES_USER环境变量定义。
POSTGRES_DB 此可选环境变量可用于为首次启动映像时创建的默认数据库定义其他名称。如果未指定,则将使用POSTGRES_USER的值。
有关环境变量的更多信息,请检查: https://hub.docker.com/_/postgres
答案 2 :(得分:1)
您可以像示例中那样更改 docker-compose.yml 文件:
数据库: 图片:postgres:13 环境: - "POSTGRES_HOST_AUTH_METHOD=trust"
答案 3 :(得分:0)
在交互模式中已经提到过;如何运行容器,如果找不到,请使用以下命令:
要允许所有不使用密码的连接,请使用
:要为超级用户指定postgres密码,请使用: