Files
nodebestpractices/sections/docker/install-for-production.basque.md
2021-03-19 19:05:17 +01:00

3.3 KiB

Ezabatu garapen menpekotasunak



Azalpen paragrafoa

Garapen menpekotasunek asko handitzen dute kontainerraren eraso azalera (esaterako segurtasun ahulezia potentzialak) eta kontainerraren tamaina. Adibide gisa, npm segurtasun zulo handienak eslint-scope bezakako garapen menpekotasunek sortuak izan ziren, edo nodemonek erabilitako ebentu katea bezalako garapenerako paketeek. Arrazoi hauek direla eta, ekoizpenerako bidaliko den irudia segurua eta txikia izan behar da. npm install komandoa --productionekin abiatzeak hasiera bikaina da, hala ere, npm ci erabiltzea oraindik seguruagoa da, zerotik sortutako instalazioa eta sarrail filtxategiaren sorrera ziurtatzen dituena. Lekuko cachea ezabatzeak gainerako hamarkada MB berreskuratzen lagun dezake. Askotan, kontainer baten barruan, garapen menpekotasunak erabiliaz probak egiteko edo debuggeatzeko beharra dago, kasu honetan etapa anitzdun erakitzeek menpekotasun sorta ezberdinak eta azkenik ekoizpenekoak bakarrik edukitzen lagun dezakete.



Kodearen adibidea: ekoizpenerako instalazioa

Dockerfile
FROM node:12-slim AS build
WORKDIR /usr/src/app
COPY package.json package-lock.json ./
RUN npm ci --production && npm clean cache --force

# Gainontzeko guztia hemen dator



Kodearen adibidea: Ekoizpenerako instalazioa egin etapa anitzdun eraikitzearekin

Dockerfile
FROM node:14.8.0-alpine AS build
COPY --chown=node:node package.json package-lock.json ./
# ✅ Instalazio segurua
RUN npm ci
COPY --chown=node:node src ./src
RUN npm run build

# Run-time stage
FROM node:14.8.0-alpine
COPY --chown=node:node --from=build package.json package-lock.json ./
COPY --chown=node:node --from=build node_modules ./node_modules
COPY --chown=node:node --from=build dist ./dist

# ✅ Garapen paketeak garbitu
RUN npm prune --production

CMD [ "node", "dist/app.js" ]



Anti ereduaren kodearen adibidea: Dockerfileko etapa bakarrean menpekotasun guztiak instalatu

Dockerfile

FROM node:12-slim AS build
WORKDIR /usr/src/app
COPY package.json package-lock.json ./
# Bi akatz hemen: Garapen menpekotasunak instalatu eta cachea ez ezabatu npm install egin ondoren
RUN npm install

# Gainontzeko guztia hemen dator



Blogeko aipua: "npm ci instalazio arrunta baino zorrotzagoa da gainera"

npmen dokumentaziotik

Komando hau npm-installen antzekoa da, baina proben plataformak, integrazio jarraitua eta inplementazioa bezalako ingurune automatizatuetan, edo zure menpekotasunen instalazio garbi bat egiten ari zarela ziur zauden egoeretan, erabiltzeko pentsatua dago. npm install komando arrunta baino askoz azkarragoa izan liteke, erabiltzaileentzako funtzionalitate batzuk alde batera uzten dituelako. Instalazio arrunt bat baino zorrotzagoa ere bada, npm erabiltzaile gehienen gutxinaka-gutxinaka instalatutako lekuko inguruneek sortutako erroreak edo kontraesanak identifikatzen laguntzen duena.