Как распаковать zip-файл в среде сборки rhel7 docker - команда unzip не найдена, хотя она есть в ОС

Как часть сборки docker, у меня есть строка в скрипте примерно так:

RUN unzip myzipfile.zip

В этой строке скрипта происходит сбой со следующей ошибкой:

/bin/sh: unzip: command not found

Это на Red Hat Enterprise Linux 7, и базовый образ Docker также является базовым образом RHEL7.

Если утилита unzip отсутствует в среде сборки Docker, то как мне что-то распаковать? unzip присутствует на сервере, который выполняет сборку, хотя я полагаю, что это не помогает. Есть ли альтернативная утилита, которую я должен проверить, которая может разархивировать файлы, или необходимо установить unzip в базовом образе?

Если есть какой-либо способ сделать это без необходимости что-либо устанавливать, это было бы предпочтительнее, так как я не думаю, что у меня есть разрешение на это, и даже если бы я это сделал, сервер, на котором выполняется сборка Docker, не подключен к Интернету.

Вы должны установить unzip с yum install unzip. Если ты не хочешь unzip чтобы попасть в окончательный образ, у вас есть несколько вариантов:

  1. Если файл поступает с компьютера сборки, вы можете сначала распаковать его там.
  2. Если файл получен с компьютера сборки и вы можете его изменить, переупакуйте его как tar.gz и использовать ADD myfile.tar.gz /some/folder и Docker автоматически распакует его там.
  3. Воспользуйся многоступенчатая сборка устанавливать unzip, подготовьте файлы, а затем скопируйте файлы на втором этапе.

    FROM registry.access.redhat.com/rhel7/rhel AS builderRUN yum install unzipADD myfile.zip /distRUN cd /dist && unzip myfile.zip && rm myfile.zipFROM registry.access.redhat.com/rhel7/rhelCOPY --from=builder /dist/ /target