Skip to content

環境構築

環境構築

composeファイル作成

ここではNext.jsPostgreSQLdocker-composeにてビルドしてみる。
docker-composeファイル等の例はこちらを参照

pnpm create next-app --example with-docker-compose with-docker-compose-app

docker-compose.yamlにPostgresの環境を加える。

version: "3"

services:
  next-app:
    container_name: next-app
    # ~~~~
    networks:
      - my_network
    depends_on:
      - db

  # Add more containers below (nginx, postgres, etc.)
  db:
    image: postgres:15
    volumes:
      - ./app/db/postgresql/data:/var/lib/postgresql/data
      - ./app/db/postgres:/docker-entrypoint-initdb.d
    ports:
      - "5432:5432"
    environment:
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=postgres
      - POSTGRES_INITDB_ARGS=--encoding=UTF-8 --locale=C

volumes:
  postgres_data:
# Define a network, which allows containers to communicate
# with each other, by using their container name as a hostname
networks:
  my_network:
    external: true

デプロイ

# Create a network, which allows containers to communicate
# with each other, by using their container name as a hostname
docker network create my_network

# Build dev
docker compose -f docker-compose.dev.yml build

# Up dev
docker compose -f docker-compose.dev.yml up

接続設定

Prismaをインストール(詳細はこちら)

pnpm install prisma --save-dev

scheme.prisma

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

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

.env

DATABASE_URL="postgresql://postgres:postgres@localhost:5432/db?schema=public"

DBマイグレーション

pnpm prisma migrate dev --name first_migration

これにてlocalhost:5432にてテーブルができていることが確認できる。