😊

Next.js,Prisma,MySQL環境をDockerで構築する

2025/01/14に公開

今回は備忘録として記録に残しておこうと思います

Dockerの構築

npx create-next-app

ここの設定は各自で

cd app
touch docker-compose.yml
mkdir -p docker/mysql/sql
touch ./docker/mysql/sql/1_init.sql
touch .env

順番に編集していきます

version: '3'
services:
  db:
    image: mysql:8.0
    ports:
      - '3307:3306'
    environment:
      MYSQL_ROOT_PASSWORD: 'root'
      MYSQL_USER: 'docker'
      MYSQL_PASSWORD: 'docker'
      MYSQL_DATABASE: 'test_db'
      TZ: 'Asia/Tokyo'
    volumes:
      - db-store:/var/lib/mysql
      - ./docker/mysql/sql:/docker-entrypoint-initdb.d

volumes:
  db-store:
GRANT CREATE, ALTER, DROP, REFERENCES ON *.* to 'docker' @'%';
MYSQL_ROOT_PASSWORD = your_root_password
MYSQL_DATABASE = mydatabase

DATABASE_URL = mysql://docker:docker@localhost:3307/test_db
docker compose up -d
npm install prisma --save-dev
npx prisma init
// This is your Prisma schema file,
// learn more about it in the docs: https://pris.ly/d/prisma-schema

// Looking for ways to speed up your queries, or scale easily with your serverless or edge functions?
// Try Prisma Accelerate: https://pris.ly/cli/accelerate-init

generator client {
  provider = "prisma-client-js"
}

datasource db {
  provider = "mysql"
  url      = env("DATABASE_URL")
}

model User {
  id        String   @id @default(cuid())
  email     String   @unique
  name      String?
  password  String
  createdAt DateTime @default(now())
  updatedAt DateTime @updatedAt
}
docker compose down --rmi all --volumes
docker compose up -d
prisma migrate dev
npx prisma generate
npx prisma db push
npm install @prisma/client

これで完了!

https://polidog.jp/2023/05/03/prisma-mysql/

参考にさせていただいた記事

GitHubで編集を提案

Discussion