Dockerfile запускать powershell wget и видеть прогресс - PullRequest
0 голосов
/ 27 мая 2020

В моем dockerfile я хочу использовать следующую последовательность команд для загрузки и извлечения большого zip-файла:

RUN powershell -Command                           \
    wget http://my_server/big_huge.zip            \
        -OutFile C:\big_huge.zip ;                \
    Expand-Archive -Path C:\big_huge.zip          \
                   -DestinationPath C:\big_huge ; \
    Remove-Item C:\big_huge.zip -Force

Я не хочу использовать ADD для загрузки zip-файла, не собираюсь change, и я хочу, чтобы этот шаг был кэширован.

То, что у меня было выше, похоже, работает, но я не получаю никаких указаний о ходе загрузки, как обычно. Это облом, потому что это большая загрузка. Я полагаю, что ход загрузки скрыт, потому что Invoke-WebRequest, который wget является псевдонимом, является командлетом. Есть ли способ передать вывод командлета на стандартный вывод, чтобы я мог видеть его, когда я запускаю docker build?

Ответы [ 2 ]

0 голосов
/ 02 июня 2020

Я отказался от попытки выполнить загрузку из файла Docker и вместо этого написал отдельный сценарий, который предварительно загружает нужные мне файлы и расширяет их архивы, если файлы еще не присутствуют. Затем этот сценарий вызывает docker build, docker run, et c. В Dockerfile я копирую каталог, в котором я расширил архивы.

0 голосов
/ 27 мая 2020

Не знаю Docker. Но, возможно, вы можете передать вывод через командлет powershell Out-Host . Для получения дополнительной информации введите help Out-Host .

...