Establecer el directorio de trabajo en Docker

Establecer el directorio de trabajo en Docker

Si existe, el directorio de trabajo de un proceso en computación es un directorio en un sistema de archivos jerárquico vinculado que es dinámico para cada proceso. En Docker, podemos configurar nuestro directorio de trabajo editando nuestro Dockerfile y agregando la clave WORKDIR.

Este artículo discutirá cómo cambiar nuestro directorio de trabajo actual y predeterminado en Docker.

el WORKDIR en Docker

El comando WORKDIR en el Dockerfile determina el directorio de trabajo para cualquier instrucción RUN, CMD, ENTRYPOINT, COPY y ADD que viene después. Podemos usar la instrucción WORKDIR varias veces en un Dockerfile.

Si proporcionamos una ruta relativa, será relativa a la ruta de la instrucción WORKDIR anterior.

Por ejemplo:

WORKDIR /usr
WORKDIR src/serv
RUN sampleserv

La salida del comando final sampleserv en este Dockerfile sería /usr/src/serv.

La instrucción WORKDIR puede resolver variables de entorno previamente especificadas con la instrucción ENV. Sin embargo, solo podemos usar variables de entorno configuradas explícitamente en el Dockerfile.

ENV DIRPATH=/usr
WORKDIR $DIRPATH/$DIRNAME
RUN sampleserv

La salida final del comando sampleserv en este Dockerfile sería /usr/$DIRNAME.

El directorio de trabajo predeterminado es el directorio raíz o / si no se especifica. En realidad, si no está creando un Dockerfile desde cero (“DESDE cero”), es posible que la imagen base que esté utilizando ya tenga configurado el WORKDIR.

Por lo tanto, recomendamos configurar explícitamente su WORKDIR para evitar actividades accidentales en carpetas desconocidas.

Siempre debemos usar rutas absolutas para su WORKDIR para mayor claridad y confiabilidad. Además, deberíamos usar WORKDIR en lugar de aumentar las instrucciones como RUN cd … && sample-code, que son difíciles de leer, solucionar problemas y mantener.

Marion Paul Kenneth Mendoza avatar Marion Paul Kenneth Mendoza avatar

Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.

LinkedIn