# Escribir un Dockerfile

Source : https://webgune.cloud/es-es/docs/docker-dockerfile · Mis à jour le 2026-10-27

# Escribir un Dockerfile

Algunos principios que mantienen tus imágenes ligeras y tus builds rápidos en Webgune.

## Multi-stage: ejemplo Node.js

```dockerfile
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

```dockerfile
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](/docs/variables-environnement).
- [ ] Un `.dockerignore` excluye `node_modules`, `.git`, `.env`.
- [ ] La imagen final usa una base ligera (`alpine`, `slim`) cuando es posible.
