Dockerfile WORKDIR también persiste en la imagen

Dockerfile WORKDIR también persiste en la imagen

Estaba tomando un tutorial en línea para aprender sobre los dockerfiles. Hubo una pregunta de prueba:

El comando Dockerfile WORKDIR cambia de directorio:

  1. solo para el resto del Dockerfile
  2. así como en la imagen terminada.

Mi selección (incorrecta) fue: "1. sólo en el resto del Dockerfile".

¿Alguien podría corregirme dando un ejemplo en el que la segunda respuesta (correcta) podría ser beneficiosa?

WORKDIR en los documentos

Respuesta1

Hay muchas ocasiones en las que necesita ejecutar código desde un directorio específico, podría ser que la aplicación que está ejecutando manipule archivos en el directorio actual, podría ser que la aplicación espera configuración en el directorio actual, podría ser simplemente que el La aplicación se encuentra en el directorio actual. WORKDIRpermite al creador de la imagen configurar esto para que las personas que ejecutan el contenedor no tengan que preocuparse por ello.

Por ejemplo; Un caso de uso que he tenido antes es crear un contenedor acoplable con una aplicación que manipula archivos en el directorio actual. Sin configurar, WORKDIRtendría que vincular el volumen a una ubicación y luego ejecutar cd /locationcada comando:

docker -v $PWD:/location someimage "cd /location; somecommand"

Al configurarlo WORKDIR, /locationpuede eliminar cd:

docker -v $PWD:/location someimage somecommand

Lo cual es mucho más conveniente.

información relacionada