Экспортированное Docker изображение tar не идентично после извлечения и воссоздания - PullRequest
0 голосов
/ 20 марта 2020

Для приложения мне нужна возможность экспортировать изображения из 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 также показывает существенные различия гекс-уровней, но на высоком уровне неясно, что представляет собой разницу.

Что другие шаги необходимы при создании нового архива, чтобы убедиться, что он идентичен оригиналу?

Сжатие не применялось ни в одной точке запуска.

...