#docker #dockerfile #tar
#docker #dockerfile #tar
Вопрос:
Как загрузить файл .tgz, а затем извлечь его в другой каталог в Dockerfile. Следуя рекомендациям для Dockerfile, упомянутым в https://docs.docker.com/develop/develop-images/dockerfile_best-practices /, Я пробовал что-то вроде:
RUN mkdir -p /usr/src/things amp;amp; curl -O https://example.com/big.tgz | tar -xvzf big.tgz -C /usr/src/things
При попытке создать образ docker я вижу следующую ошибку:
tar (child): big.tgz: Cannot open: No such file or directory tar (child): Error is not recoverable: exiting now tar: Child returned status 2 tar: Error is not recoverable: exiting now
Ответ №1:
Удалите f
флаг из tar
команды, например:
RUN mkdir -p /usr/src/things amp;amp; curl -O https://example.com/big.tgz | tar -xvz -C /usr/src/things
Вывод из curl
передается по конвейеру tar
вместо записи в файл, но tar -f
будет искать несуществующий файл big.tgz
.
Смотрите варианты для -f, --file=ARCHIVE: Use archive file or device ARCHIVE
Источник: tar manpage