Dockerfile WORKDIR также сохраняется в образе

Dockerfile WORKDIR также сохраняется в образе

Я проходил онлайн-урок, чтобы узнать о dockerfiles. Там был вопрос викторины:

Команда Dockerfile WORKDIR изменяет каталоги:

  1. только для остальной части Dockerfile
  2. так и в готовом изображении.

Мой выбор (неправильный) был: «1. только в остальной части Dockerfile».

Может ли кто-нибудь поправить меня, приведя пример, где второй (правильный) ответ мог бы быть полезен?

WORKDIR в документах

решение1

Во многих случаях вам необходимо выполнить код из определенного каталога. Возможно, приложение, которое вы запускаете, манипулирует файлами в текущем каталоге, возможно, приложение ожидает конфигурацию в текущем каталоге, возможно, приложение просто находится в текущем каталоге. WORKDIRпозволяет создателю образа настроить это так, чтобы людям, запускающим контейнер, не нужно было об этом беспокоиться.

Например; один из вариантов использования, который у меня был раньше, — это создание контейнера docker с приложением, которое манипулирует файлами в текущем каталоге. Без настройки WORKDIRвам пришлось бы привязывать том к местоположению, а затем запускать cd /locationдля каждой команды:

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

Установив WORKDIRзначение , /locationвы можете удалить cd:

docker -v $PWD:/location someimage somecommand

Что гораздо удобнее.

Связанный контент