La instrucción WORKDIR se usa para establecer el directorio de trabajo para todas las instrucciones posteriores de Dockerfile . Algunas instrucciones de uso frecuente en un Dockerfile son RUN , ADD , CMD , ENTRYPOINT y COPY. Si WORKDIR no se crea manualmente, se crea automáticamente durante el procesamiento de las instrucciones. Algunos puntos a tener en cuenta al usar la instrucción WORKDIR son los siguientes:
- WORKDIR no crea nuevas capas de imagen intermedias.
- Agrega metadatos a la configuración de imagen.
- Puede tener varias instrucciones WORKDIR en su Dockerfile .
- Si usa rutas relativas como directorio de trabajo, será relativo al directorio de trabajo anterior.
- La ruta predeterminada es /
En este artículo, discutiremos cómo usar la instrucción WORKDIR en su Dockerfile . También discutiremos otras 2 formas de emitir Working Directory dentro de su Dockerfile . Siga los pasos a continuación para trabajar con la instrucción WORKDIR:
Paso 1: Crear el Dockerfile
Puede usar la siguiente plantilla para crear el Dockerfile .
FROM ubuntu:latest WORKDIR /my-work-dir
Paso 2: crea la imagen de Docker
Para compilar la imagen de Docker, puede usar el comando Compilación de Docker.
sudo docker build -t workdir-demo
Paso 3: Ejecute el Contenedor Docker
Para ejecutar Docker Container, puede usar el comando Docker Run.
sudo docker run -it workdir-demo
El comando anterior abre bash para el contenedor.
Paso 4: verificar el directorio de trabajo
Puede utilizar el comando imprimir directorio de trabajo (pwd) para imprimir el directorio de trabajo.
Ahora. Discutamos formas de emitir un directorio de trabajo en un Dockerfile . Hay 2 formas posibles de hacerlo, y ambas se explican a continuación:
1. WORKDIR especificando la ruta relativa
Veamos cómo puede especificar una ruta relativa con la instrucción WORKDIR.
El primer paso es crear un Dockerfile como se menciona a continuación:
FROM ubuntu:latest WORKDIR /my-work-dir RUN echo "work directory 1" > file1.txt WORKDIR /my-work-dir-2 RUN echo "work directory 2" > file2.txt
Ahora, compila y ejecuta el contenedor Docker.
sudo docker build -t workdir-demo . sudo docker run -it workdir-demo bash
Finalmente, imprima el directorio de trabajo.
pwd
La primera declaración de eco se ejecuta con el directorio de trabajo establecido en la carpeta «my-work-dir» . Es por eso que si usa el comando ls para ver el contenido de la carpeta, encontrará “file1.txt” dentro de la carpeta “my-work-dir” . La segunda instrucción WORKDIR cambia el directorio de trabajo a «my-work-dir-2» y, por lo tanto, el archivo «file2.txt» está dentro de esa carpeta.
2. WORKDIR especificando variables de entorno
La segunda forma de emitir un directorio de trabajo es haciendo uso de las variables de entorno. Siga los pasos a continuación para tomarlo:
El primer paso es usar la siguiente plantilla de Dockerfile como se muestra a continuación:
FROM ubuntu:latest ENV DIRPATH /app WORKDIR $DIRPATH
Aquí, configuramos la variable de entorno DIRPATH en el directorio /app y configuramos WORKDIR.
Ahora, después de ejecutar Docker Container, encontrará el directorio configurado como /app .
sudo docker build -t workdir-demo . sudo docker run -it workdir-demo pwd
Para concluir, en este artículo, discutimos cómo usar la instrucción WORKDIR en el Dockerfile para configurar el directorio de trabajo. También vimos cómo configurar un directorio de trabajo utilizando rutas relativas y variables de entorno.