运行 docker 容器时无法反应 localhost,但我当前正在查询数据

问题描述 投票:0回答:1

我正在尝试使用 local-db 并用于我的 API 图像,但是当我放置具有 URL 字符串的 .env 时,它会给我错误:

Error: PrismaClientInitializationError: Can't reach database server at `localhost`:`3306`

Please make sure your database server is running at `localhost`:`3306`.
    at /app/index.js:58:11

所以我从 dockerhub 中提取了镜像,然后将 .env 与 MySQL 字符串 URL 一起传递

.env 文件:

DATABASE_URL=mysql://root@localhost:3306/database

程序:

  1. docker 拉取用户/镜像
  2. docker run -p 4500:4500 --env-file .env --name 容器 --restart 始终-d image

但是我正在工作台上访问本地主机上的数据库并查询数据。

mysql database docker
1个回答
0
投票

解决方案

使用

host.docker.internal
代替
localhost

如果你使用 localhost,Env 应该是这样的:

DATABASE_URL=mysql://[email protected]:3306/database
© www.soinside.com 2019 - 2024. All rights reserved.