En esta lección aprenderás instrucción WORKDIR Dockerfile, una instrucción sencilla pero muy importante para ordenar builds, evitar rutas relativas confusas y dejar claro desde dónde se ejecutan comandos como RUN, CMD, ENTRYPOINT, COPY o ADD.
WORKDIR no ejecuta tu aplicación ni instala paquetes. Su función es definir el directorio de trabajo dentro de la imagen para las instrucciones siguientes.
👉 Y recuerda, si quieres aprender más de Linux, pincha en este curso de Linux gratis
🐳 Si quieres aprender más de Docker, pincha en este curso de Docker gratis
Qué hace la instrucción WORKDIR Dockerfile
Problema: si un Dockerfile mezcla rutas absolutas y relativas sin orden, es fácil copiar archivos en un sitio y ejecutar comandos desde otro.
Qué aporta Docker: WORKDIR fija el directorio actual para las instrucciones posteriores. Si la ruta no existe, Docker la crea durante el build.
| Comportamiento | Resultado |
|---|---|
| WORKDIR /app | Define /app como directorio de trabajo y lo crea si no existe. |
| COPY . . | Copia el contexto al WORKDIR actual. |
| RUN npm install | Ejecuta el comando desde el WORKDIR actual. |
Ejemplo práctico
FROM node:22-alpine
WORKDIR /app
COPY package*.json ./
RUN npm install --omit=dev
COPY . .
CMD ["node", "server.js"]En este ejemplo, WORKDIR /app evita repetir rutas largas. COPY package*.json ./ y RUN npm install trabajan dentro de /app, no en la raíz del sistema de archivos.
Errores comunes
- Olvidar WORKDIR: puede hacer que COPY, RUN o CMD dependan de rutas poco claras.
- Usar rutas relativas sin saber el directorio actual: complica depurar errores de archivos no encontrados.
- Cambiar WORKDIR demasiadas veces: vuelve el Dockerfile difícil de leer.
- Confundir WORKDIR con volumen: WORKDIR define ubicación de trabajo, no persistencia de datos.
Advertencia: no uses WORKDIR para ocultar desorden. Si tu imagen necesita muchos cambios de directorio, probablemente conviene simplificar la estructura del proyecto o separar etapas de build.
Lecciones relacionadas del curso Docker
- Instrucción COPY
- Instrucción RUN Dockerfile
- Instrucción CMD
- Instrucción ENTRYPOINT
- Estructura básica de un Dockerfile
Documentación oficial y recursos
- Referencia oficial de WORKDIR
- Buenas prácticas oficiales para Dockerfile
- Conceptos oficiales de Dockerfile
La instrucción WORKDIR Dockerfile queda bien usada cuando mejora la claridad del Dockerfile y evita depender de rutas implícitas.
Como regla práctica, define un directorio estable pronto y úsalo de forma consistente durante el resto de la construcción.
