Escribir un Dockerfile
Actualizado el 27 de octubre de 2026
Escribir un Dockerfile
Algunos principios que mantienen tus imágenes ligeras y tus builds rápidos en Webgune.
Multi-stage: ejemplo Node.js
FROM node:20-alpine AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build
FROM node:20-alpine AS runner
WORKDIR /app
ENV NODE_ENV=production
COPY --from=builder /app/dist ./dist
COPY --from=builder /app/node_modules ./node_modules
CMD ["node", "dist/server.js"]
El stage builder contiene las herramientas de compilación y la caché de npm; solo lo estrictamente necesario se copia al stage final, lo que reduce fuertemente el tamaño de la imagen entregada.
Multi-stage: ejemplo Go
FROM golang:1.22-alpine AS builder
WORKDIR /app
COPY go.* ./
RUN go mod download
COPY . .
RUN go build -o server .
FROM alpine:latest
COPY --from=builder /app/server /server
CMD ["/server"]
Lista de verificación antes de subir
- La aplicación escucha en
0.0.0.0:$PORT, no en un puerto fijo. - Ningún secreto se copia en la imagen: todo pasa por las variables de entorno.
- Un
.dockerignoreexcluyenode_modules,.git,.env. - La imagen final usa una base ligera (
alpine,slim) cuando es posible.