- خپره شوې پر
د Bun او Docker په کارولو سره د یوه خپلواک Next.js برنامه د استقرار کولو بشپړ لارښود
- لیکوالان
- نوم
- Imamuzzaki Abu Salam
- https://x.com/ImBIOS_Dev
ولې د بن او ډاکر سره 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 /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 ایپ ځای پرځای کړئ، د ورکل د ځای پرځای کولو پروسه تقلید کړئ، د بن او ډاکر سره. وړیا یاست چې دا ترتیبات د خپل پروژې اړتیاو مطابق تنظیم او ښه کړئ.
څه راتلونکې ده؟
که تاسو دا لارښود ګټور وموند، یې شریک کړئ او که تاسو کومه پوښتنه یا پرمختګ لرئ، نظر ورکړئ. د نورو لپاره انتظار وکړئ!