我正在创建两个数据库:产品和测试数据库:
version: '3.8'
services:
db:
image: postgres:13-alpine
environment:
POSTGRES_USER: myuser
POSTGRES_PASSWORD: mypassword
POSTGRES_DB: mydb
volumes:
- postgres_test_data:/var/lib/postgresql/data
- ./db/create_script.sql:/docker-entrypoint-initdb.d/create_script.sql
ports:
- "5432:5432"
test-db:
image: postgres:13-alpine
environment:
POSTGRES_USER: myuser
POSTGRES_PASSWORD: mypassword
POSTGRES_DB: mydb
volumes:
- postgres_test_data:/var/lib/postgresql/data
- ./db/create_script.sql:/docker-entrypoint-initdb.d/create_script.sql
ports:
- "5433:5432"
volumes:
postgres_prod_data:
postgres_test_data:
这个 docker compose 可以工作,它创建了镜像,启动了容器。
但是,当我尝试连接到
db
图像时,它显示凭据无效,但是当我尝试连接到 test-db
(实际上是使用更改的端口进行复制粘贴)时,它可以工作。
这是什么原因造成的?这些图像是新创建的,具有新的体积,并且逐字复制粘贴,为什么一个有效而另一个无效?
日志没有指定它们的任何错误。
感谢您的帮助
db
和 test-db
使用相同的音量,这可能会导致不一致。
尝试使用不同的卷也许可以解决您的问题。
还要确保重置容器以确保重新开始:
docker-compose down -v
docker-compose up