- منتشر شده در
د Bun او Docker په کارولو سره د یوه خپلواک Next.js برنامه د استقرار کولو بشپړ لارښود
- نویسندگان
- نام
- Imamuzzaki Abu Salam
- https://x.com/ImBIOS_Dev
ولې د بن او ډاکر سره Next.js ځای پرځای کړو؟
کله چې بن خپل باثباته نسخه 1 ته ورسېده او ورسل د پیکیج مدیر په توګه یې ملاتړ پیل کړ (که څه هم لاهم د رن ټایم لپاره د نوډ څخه په ګټه اخیستو سره)، زه حیران شوم. تاسو څنګه کولی شئ د ورسل ځای پرځای کولو پروسې په محلي توګه تقلید کړئ؟ په ځانګړې توګه، تاسو څنګه کولی شئ د بن او ډاکر سره د Next.js ځانګړی اپلیکیشن ځای پرځای کړئ؟ دا لارښود موخه لري چې د دغو پوښتنو ځوابونه ورکړي.
مخکې ته اړتیاوې
د ډاکر، Next.js، او بن په اړه اساسي پوهه
نصب شوی نوډ.js
نصب شوی بن پیکیج مدیر
ګام په ګام لارښود
ګام 1: د ډاکر فایل تنظیم کول
دلته د بشپړ ډاکر فایل چې تاسو به ورته اړتیا ولرئ، دی.
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 /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: سره مخکې غلطۍ. زه یې په دې لاره حل کړم چې د oven/bun
پر ځای imbios/bun-node
د اساس انځور په توګه کاروم. ځکه چې موږ د بن لپاره چې لا تر اوسه ندی پلي شوي ځانګړتیاو لپاره د نوډ.js بدیل ته اړتیا لرو.
نتیجه
په دې لارښود تعقیبولو سره، تاسو باید د بن او ډاکر سره د ورسل ځای پرځای کولو پروسې تقلید کولو سره د Next.js اپلیکیشن ځای پرځای کړی وي. آزاد یئ چې د خپل پروژې اړتیاو سره سم دا ترتیب تنظیم کړئ او غوره یې کړئ.
راتلونکی څه؟
دا لارښود شریک کړئ که تاسو یې ګټور وموندل او که تاسو کومه پوښتنه یا اصلاح ولرئ نظر پریږدئ. د نورو لپاره انتظار مه کوئ!