我一直在 StackOverflow 上阅读几种可能的解决方案,但没有一个能解决我的问题。 上周一切正常,本周一切停止工作。我不知道是否是因为 pgAdmin/Postgres 的新版本将其设置为最新版本,并且每次启动容器时,一旦删除了以前的映像,直到一切正常,我选择了以前的版本,但它仍然无法正常工作工作。 它不会使用默认定义的用户 [email protected] 连接到 Postgres 管理员,我什至在跟踪中没有看到登录错误。 我是 Docker + Docker-compose 问题的新手,我已经遵循了所有示例,但它不再对我有用。我已经删除了所有图像并从 0 重新创建了所有内容,但它仍然不起作用。我没有对 docker-compose 脚本进行太多更改,我只引用了端口、环境变量,我更改了 - VARIABLE= --> VARIABLE: 的格式,但没有效果。
我看到的另一件事是它不会使用传递的脚本创建数据库。 有任何想法吗? 我在这里留下完整的 docker-compose 脚本和数据库创建脚本。
当我设置为 pgAdmin 登录时:[email protected]/qwerty 不要输入
注意:Postgres DB 已启动
谢谢你
docker-compose.yml
version: '3.8'
services:
# Other services
############################################################################
## Database configuration
##
############################################################################
postgres_db:
networks:
- payment_network
container_name: postgres
image: postgres:15.6
ports:
- "3432:5432"
restart: always
volumes:
- ./dbfiles:/docker-entrypoint-initdb.d
- /var/lib/postgres_data:/var/lib/postgressql/data
environment:
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=qwerty
- POSTGRES_DB=postgres
pgadmin4:
networks:
- payment_network
image: dpage/pgadmin4:8.2
restart: always
environment:
- [email protected]
- PGADMIN_DEFAULT_PASSWORD=qwerty
ports:
- "80:80"
depends_on:
- postgres_db
networks:
payment_network:
name: payment_network
driver: bridge
初始化数据库的脚本
#!/bin/bash
set -e
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
CREATE USER springboot WITH PASSWORD 'qwerty';
CREATE DATABASE springboot;
GRANT ALL PRIVILEGES ON DATABASE springboot TO springboot;
EOSQL
我不知道发生了什么,但我更改了用户名和密码,它允许我登录。