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"
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.