خپره شوې پر

د Bun او Docker په کارولو سره د یوه خپلواک Next.js برنامه د استقرار کولو بشپړ لارښود

لیکوالان

ولې د بن او ډاکر سره Next.js ځای پرځای کړو؟

کله چې بن خپل مستحکم نسخه 1 ته ورسېد او ورکل د پیکیج مدیر په توګه یې ملاتړ پیل کړ (که څه هم د رنټایم لپاره لا هم په Node پورې اړه لري)، زه لیواله شوم. تاسو څنګه کولی شئ د ورکل د ځای پرځای کولو پروسه په محلي توګه تقلید کړئ؟ په ځانګړې توګه، تاسو څنګه کولی شئ د بن او ډاکر سره یو Next.js خپلواک ایپ ځای پرځای کړئ؟ دا لارښود د دې پوښتنو ځواب ورکولو لپاره دی.

مخکې له دې چې پیل کړئ

  • د ډاکر، Next.js او بن په اړه اساسي پوهه

  • د Node.js نصب شوی

  • د بن پیکیج مدیر نصب شوی

ګام په ګام لارښود

ګام 1: د ډاکر فائل تنظیم کول

دلته بشپړ dockerfile دی چې تاسو ورته اړتیا لرئ.

FROM imbios/bun-node:18-slim AS deps
ARG DEBIAN_FRONTEND=noninteractive

# زه د آسیا/جاکارتا وخت زون کاروم، تاسو کولی شئ دا خپل وخت زون ته بدل کړئ
RUN apt-get -y update && \
  apt-get install -yq openssl git ca-certificates tzdata && \
  ln -fs /usr/share/zoneinfo/Asia/Jakarta /etc/localtime && \
  dpkg-reconfigure -f noninteractive tzdata
WORKDIR /app

# د غوره شوي پیکیج مدیر پراساس انحصارونه نصب کړئ
COPY package.json bun.lockb ./
RUN bun install --frozen-lockfile

# ایپ جوړ کړئ
FROM deps AS builder
WORKDIR /app
COPY . .

RUN bun run build


# د تولید انځور، ټول فایلونه کاپی کړئ او next یې چل کړئ
FROM node:18-slim AS runner
WORKDIR /app

ARG CONFIG_FILE
COPY $CONFIG_FILE /app/.env
ENV NODE_ENV production
# د رنټایم په وخت کې د ټیلی میتري غیر فعالولو په صورت کې لاندې کرښه غیر فعال کړئ.
# ENV NEXT_TELEMETRY_DISABLED 1

COPY --from=builder  /app/.next/standalone ./

EXPOSE 3001

ENV PORT 3001

CMD ["node", "server.js"]

ګام 2: د خپل ښیل سکریپټ

یو ځانګړی ښیل سکریپټ ./build.sh جوړ کړئ.

#!/bin/bash
set -e

# د ورکړل شوي دلیلونو سره د Next.js جوړونه چل کړئ
next build "$@"

# فایلونه یوازې هغه وخت کاپی کړئ کله چې په CI چاپیریال کې نه وي
if [ -z "$CI" ]; then
  cp -r ./public ./.next/standalone/public
  cp -r ./.next/static ./.next/standalone/.next/static
fi

عام ستونزې او د ستونزو حل

زه په خپل لومړي هڅه کې د ځینو ستونزو سره مخ شوم، په ځانګړې توګه غلطۍ چې د node: سره پیل کیدلې. زه د imbios/bun-node په کارولو سره یې حل کړې د oven/bun پرځای د بنسټ انځور په توګه. ځکه چې موږ د بن د نه پلي شویو ځانګړتیاوو لپاره د Node.js بک اپ ته اړتیا لرو.

پایله

د دې لارښود په تعقیب، تاسو باید د Next.js ایپ ځای پرځای کړئ، د ورکل د ځای پرځای کولو پروسه تقلید کړئ، د بن او ډاکر سره. وړیا یاست چې دا ترتیبات د خپل پروژې اړتیاو مطابق تنظیم او ښه کړئ.

څه راتلونکې ده؟

که تاسو دا لارښود ګټور وموند، یې شریک کړئ او که تاسو کومه پوښتنه یا پرمختګ لرئ، نظر ورکړئ. د نورو لپاره انتظار وکړئ!