- Waxaa la daabacay
Habka Loogu Dhiso Next.js oo Madaxbannaan oo Loo Adeegsado Docker iyo Build
- Qorayaasha
- Magaca
- Imamuzzaki Abu Salam
- https://x.com/ImBIOS_Dev
Maxaad Next.js ula Socodsiisaa Bun iyo Docker?
Markii Bun uu gaaray noocii ugu dambeeyay ee 1, Vercelna ay bilaabeen inay taageeraan sida maareeye xirmo (inkasta oo ay wali ku tiirsan yihiin Node si ay u shaqeeyaan), waxaan aad u xiiseeyay. Sidee baad u simi kartaa habka shaqaynta ee Vercel oo ah mid maxalli ah? Gaar ahaan, sidee baad u shaqayn kartaa codsi Next.js oo madaxbanaan oo leh Bun iyo Docker? Tilmaamahaan waxay ka jawaabayaan su'aalahaan.
Shuruudaha
Faham aasaasi ah oo ku saabsan Docker, Next.js, iyo Bun
Node.js oo la rakibay
Bun oo la rakibay
Tilmaame Tallaabo-Tallaabo ah
Tallaabada 1: Sameynta Dockerfile
Halkan waxaa ah dockerfile
oo buuxa oo aad u baahan doonto.
FROM imbios/bun-node:18-slim AS deps
ARG DEBIAN_FRONTEND=noninteractive
# Waxaan isticmaalaa Asia/Jakarta sida waqtiygeyga, waxaad bedeli kartaa waqtigaaga
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
# Ku rakib ku tiirsanaanta iyadoo lagu saleynayo maareeyaha xirmada ee la jecel yahay
COPY package.json bun.lockb ./
RUN bun install --frozen-lockfile
# Dhis codsiga
FROM deps AS builder
WORKDIR /app
COPY . .
RUN bun run build
# Sawirka wax soo saarka, koobiyay dhammaan faylasha oo shaqeeyso next
FROM node:18-slim AS runner
WORKDIR /app
ARG CONFIG_FILE
COPY $CONFIG_FILE /app/.env
ENV NODE_ENV production
# Ka saar faallooyinka ku jira sadarradan haddii aad rabto inaad joojiso telemetry inta lagu jiro wakhtiga fulinta.
# ENV NEXT_TELEMETRY_DISABLED 1
COPY /app/.next/standalone ./
EXPOSE 3001
ENV PORT 3001
CMD ["node", "server.js"]
Tallaabada 2: Qoraalka Qoraalka caadada ah
Samee qoraal qoraal caado ah ./build.sh.
#!/bin/bash
set -e
# Shaqeeyso dhismaha Next.js iyadoo la adeegsanayo argumentiyada la gudbiyay
next build "$@"
# Koobiyay faylasha oo keliya haddii aan lagu jirin deegaan CI
if [ -z "$CI" ]; then
cp -r ./public ./.next/standalone/public
cp -r ./.next/static ./.next/standalone/.next/static
fi
Khaladaha Caadiga ah iyo Xalinta
Waxaan la kulmay qaar ka mid ah caqabadaha markii aan isku dayay markii ugu horeysay, gaar ahaan khaladaha ku bilaabmaya node:. Waxaan saxay iyadoo la isticmaalayo imbios/bun-node
halkii laga isticmaali lahaa oven/bun
sida sawirka saldhigga ah. Sababtoo ah waxaan u baahannahay Node.js si loogu soo celiyo Bun ee aan wali la fulin.
Gabagabo
Adigoo raacaya tilmaamahaan, waa inaad yeelataa codsi Next.js oo la shaqeysiiyay, oo ku daynaysa habka shaqeynta ee Vercel, oo leh Bun iyo Docker. Isku day inaad bedesho oo aad hagaajiso dejinta iyadoo loo eegayo baahiyaha mashruucaaga.
Maxaa Xiga?
La wadaag tilmaamahaan haddii aad ka heshay mid faa'iido leh oo ka tag sharaxaad haddii aad qabto su'aalo ama hagaajin. Sug si aad u aragto wax badan!