Для приложения мне нужна возможность экспортировать изображения из Docker, извлечь их из файлов tar, а затем воссоздать эти изображения в идентичные файлы tar, которые можно импортировать без изменений.
Однако , когда я извлекаю tar из изображения, а затем НЕМЕДЛЕННО, без каких-либо дальнейших действий, пытаюсь создать новый, идентичный tar (например, root одинаков для обоих), полученный файл немного отличается по размеру.
Проверка:
Использование sha256sum
в обоих файлах приводит к разному ха sh.
После извлечения обоих архивов, сравнение на полученных папках видно, что они абсолютно идентичны. Проверено с diff
и Meld.
Используемые шаги:
Для экспорта изображений: docker image save {image_name} >{tar_name} && mkdir >{extract_folder}
Для операций архивирования, npm используется пакет tar
:
tar.extract({
file: {tar_file_path},
cwd: {extract_folder},
mtime: date, // a timestamp set before running any script
preserveOwner: true,
})
/* */
tar.create({
file: {new_tar_file_path},
cwd: {extract_folder},
mtime: date, // same as above
}, [''])
Использование dhex
также показывает существенные различия гекс-уровней, но на высоком уровне неясно, что представляет собой разницу.
Что другие шаги необходимы при создании нового архива, чтобы убедиться, что он идентичен оригиналу?
Сжатие не применялось ни в одной точке запуска.