Next.jsをDockerコンテナでデプロイする

Docker

Next.jsをDockerコンテナ化してデプロイする際のDockerfile, docker-composeファイルを残してます。

前提

docker-compose.yaml

version: '3'

services:
  next:
    build:
      context: .
    container_name: next
    volumes:
      - .:/app
    ports:
      - 3000:3000

Dockerfile

FROM node:16-alpine AS builder

RUN apk add --no-cache libc6-compat # node:alpineで不足しがちな共有ライブラリを追加
WORKDIR /app
ENV NEXT_TELEMETRY_DISABLED 1 # 匿名での情報収集を拒否する設定
COPY . .

RUN yarn install --frozen-lockfile # npmなら, RUN npm ci
RUN yarn build # npmなら, RUN npm run build

FROM node:16-alpine as runner

ENV NODE_ENV production
ENV NEXT_TELEMETRY_DISABLED 1

COPY --from=builder /app/next.config.js next.config.js # 初期設定のままであれば不要
COPY --from=builder /app/.next .next
COPY --from=builder /app/.env .env # 必要なenvファイル
COPY --from=builder /app/public public
COPY --from=builder /app/node_modules node_modules
COPY --from=builder /app/package.json package.json
COPY --from=builder /app/yarn.lock yarn.lock # npmなら, package-lock.json

CMD ["yarn", "start"] # npmなら, npm run start

タイトルとURLをコピーしました