Подтвердить что ты не робот

Как указать рабочий каталог для ENTRYPOINT в файле Dockerfile

Изображение Docker (на основе Windows) включает каталог приложений в C:\App. Внутри этого каталога находятся несколько подпапок и файлов, включая пакетный файл с именем process.bat. Файл Docker (используемый для создания изображения) заканчивается следующим образом:

ENTRYPOINT [ "C:\\App\\process.bat" ]

Когда я создаю экземпляр этого изображения с помощью команды: docker run company/app, командный файл запускается, но он терпит неудачу в точке, где указаны другие файлы в C:\App. По существу, рабочий каталог все еще C:\ из входной точки контейнера Docker.

Есть ли способ установить рабочий каталог в файле Docker? Пара альтернатив существует:

  • Добавить -w C:\App для запуска -w C:\App
  • В пакетном файле я могу добавить строку в начале cd/DC:\App

Но есть ли способ указать рабочий каталог в файле Docker?

4b9b3361

Ответ 1

WORKDIR/App - это команда, которую вы можете использовать в своем файле docker для изменения рабочего каталога.

Ответ 2

Если /App - это смонтированный том, тогда вы должны указать VOLUME/App перед WORKDIR чтобы использовать его с ENTRYPOINT, иначе это не будет видно ENTRYPOINT:

VOLUME ["/App"]
WORKDIR /App
ENTRYPOINT ["sh", "start.sh"]

Какой start.sh находится в каталоге /App.