Я разрабатываю сервер Backend с prisma 2, MySQL, Docker -compose, сервер GraphQL-Yoga
Моя ОС Windows 10, docker compose use debian-openssl- 1.1.x
проблема в том, что prisma 2 контейнер не может подключиться MySQL контейнер
version: "3.7"
services:
mysql:
image: mysql:8.0.19
container_name: mysql
ports:
- 3306:3306
restart: always
environment:
MYSQL_DATABASE: $${MYSQL_DATABASE}
MYSQL_ROOT_PASSWORD: $${MYSQL_ROOT_PASSWORD}
volumes:
- /var/lib/mysql
prisma:
links:
- mysql
depends_on:
- mysql
container_name: prisma
ports:
- "5555:5555"
build:
context: back/prisma
dockerfile: Dockerfile
environment:
MYSQL_URL: $${MYSQL_URL}
MYSQL_ROOT_PASSWORD: $${MYSQL_ROOT_PASSWORD}
volumes:
- /app/prisma
backend:
links:
- mysql
depends_on:
- mysql
container_name: backend
ports:
- "4000:4000"
build:
context: back
dockerfile: Dockerfile
environment:
MYSQL_URL: $${MYSQL_URL}
FRONTEND_URL: $${FRONTEND_URL}
volumes:
- ./back:/app
- ./back/node_modules:/app/node_modules
- ./back/prisma:/app/prisma
frontend:
container_name: frontend
ports:
- "3000:3000"
build:
context: front
dockerfile: Dockerfile
environment:
BACKEND_URL: $${BACKEND_URL}
volumes:
- ./front:/app
- ./front/node_modules:/app/node_modules
MYSQL_URL="mysql://root:prisma@mysql:3306/prisma"
BACKEND_URL=http://localhost:4000
FRONTEND_URL=http://localhost:3000
MYSQL_DATABASE:"prisma"
MYSQL_ROOT_PASSWORD:"prisma"
-schema.prisma
generator client {
provider = "prisma-client-js"
binaryTargets = ["native", "debian-openssl-1.1.x"]
}
datasource db {
provider = "mysql"
url = env("DATABASE_URL")
}
DATABASE_URL="mysql://root:prisma@mysql:3306/prisma"
когда я запускаю docker -compose (docker -compose up), контейнер prisma (студия prisma 2) показывает эти журналы
Error in Prisma Client request:
Error:
Invalid `prisma.user.count()` invocation:
Authentication failed against database server at `mysql`, the provided database credentials for `root` are not valid.
Please make sure to provide valid database credentials for the database server at `mysql`.
at PrismaClientFetcher.request (/root/.cache/prisma/studio/app/runtime/index.js:1:52273)
at processTicksAndRejections (internal/process/task_queues.js:97:5)
введите описание изображения здесь
Я думаю, что эта ошибка произошла, потому что контейнер MySQL имеет пароль, отличный от MYSQL_ROOT_PASSWORD, который я написал в doctor-compose.yml. Но я думаю, что, похоже, нет проблем с настройкой, почему происходит эта ошибка?
И если я не настроил MYSQL_ROOT_PASSWORD, какое значение пароля по умолчанию генерируется контейнером MySQL?
Я искал несколько дней, чтобы найти ответ на эту проблему, но не смог получить ответ. пожалуйста, дайте мне несколько советов. спасибо