- Yayımlanma tarixi
Müstəqil Next.js tətbiqlərinin Bun və Docker istifadə edərək yayılması üçün tam bələdçi
- Müəllif(lər)
- Ad
- Imamuzzaki Abu Salam
- https://x.com/ImBIOS_Dev
Bun və Docker ilə Next.js-in necə yerləşdirilməsi?
Bun stabil versiya 1-ə çatanda və Vercel onu paket meneceri olaraq dəstəkləməyə başlayanda (hələ də runtime üçün Node-a etibar edərək), maraqlandım. Vercel yerləşdirmə prosesini yerli olaraq necə təqlid edə bilərsiniz? Xüsusilə, Bun və Docker ilə Next.js müstəqil tətbiqini necə yerləşdirə bilərsiniz? Bu bələdçi bu suallara cavab vermək üçün hazırlanmışdır.
Ön Şərtlər
- Docker, Next.js və Bun haqqında əsas anlayış
- Node.js quraşdırılmış
- Bun paket meneceri quraşdırılmış
Addım-addım Bələdçi
1-ci Addım: Dockerfile-in Qurulması
İhtiyacınız olacaq tam dockerfile
aşağıdakı kimi:
FROM imbios/bun-node:18-slim AS deps
ARG DEBIAN_FRONTEND=noninteractive
# Mən Vaxt zonasını Asia/Jakarta kimi istifadə edirəm, siz onu öz vaxt zonanıza dəyişə bilərsiniz
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
# Seçilmiş paket menecerindən asılı olaraq asılılıqları quraşdırın
COPY package.json bun.lockb ./
RUN bun install --frozen-lockfile
# Tətbiqi yaradın
FROM deps AS builder
WORKDIR /app
COPY . .
RUN bun run build
# İstehsal şəkli, bütün faylları kopyalayın və next çalıştırın
FROM node:18-slim AS runner
WORKDIR /app
ARG CONFIG_FILE
COPY $CONFIG_FILE /app/.env
ENV NODE_ENV production
# Runtime zamanı telemetriyanı söndürmək istəyirsinizsə, aşağıdakı sətri açın.
# ENV NEXT_TELEMETRY_DISABLED 1
COPY /app/.next/standalone ./
EXPOSE 3001
ENV PORT 3001
CMD ["node", "server.js"]
2-ci Addım: Xüsusi Shell Skripti
Xüsusi shell skripti ./build.sh yaradın.
#!/bin/bash
set -e
# Keçən arqumentlərlə Next.js quruluşunu çalıştırın
next build "$@"
# Faylları yalnız CI mühitində deyilsə kopyalayın
if [ -z "$CI" ]; then
cp -r ./public ./.next/standalone/public
cp -r ./.next/static ./.next/standalone/.next/static
fi
Ümumi Xətalar və Həll Yolları
İlk cəhdim zamanı bəzi problemlərə rast gəldim, xüsusilə node: ilə başlayan xətalar. Bunları imbios/bun-node
-u əsas şəkil olaraq oven/bun
əvəzinə istifadə edərək düzəltdim. Çünki Bun-un hələ də işləməyən xüsusiyyətləri üçün Node.js ehtiyatına ehtiyacımız var.
Nəticə
Bu bələdçiyə əməl etməklə, Bun və Docker ilə Vercel yerləşdirmə prosesini təqlid edən Next.js tətbiqini yerləşdirməlisiniz. Layihənizə uyğun olaraq quraşdırmanı dəyişdirmək və optimallaşdırmaqda çəkinməyin.
Növbəti nə?
Bu bələdçi sizin üçün faydalı olduqda paylaşın və hər hansı sualınız və ya təkmilləşdirmə təklifiniz varsa, şərh yazın. Daha çox yenilikləri izləyin!