我有一个在我机器上的 docker 容器中运行的 postgresql 数据库。我用这个运行命令开始它。
docker run -p 5432:5432 -d \
-e POSTGRES_PASSWORD=$PG_PASS \
-e POSTGRES_USER=$PG_USER \
-e POSTGRES_DB=$PG_NAME \
-v pgdata:/var/lib/postgresql/data \
--name $PG_CONTAINER_NAME \
postgres:alpine
我已经确认这通过运行 pgadmin4 容器并使用其容器名称连接到该容器来使用环境变量创建了数据库。
现在我正在尝试将我的快速应用程序连接到数据库。我正在使用一个名为 mikroorm 的 orm。ts代码是
const orm = await MikroORM.init({
dbName: 'ketopal',
user: 'ketopaladmin',
password: 'ketopaladmin',
type: 'postgresql',
debug: !__prod__,
entities: [Post],
host: '172.17.0.2',
port: 5432
})
这会产生一行错误,
MikroORM 无法连接到 postgresql://ketopaladmin:*****@172.17.0.2:5432 上的数据库 ketopal
但我不知道为什么或如何解决它。172.17.0.2 是 docker 给容器的 IP。
在我的完美世界中,你们都可以告诉我如何让 docker 使 localhost:5432 指向 docker 容器,但我们将不胜感激。