Как часть сборки докера, у меня в скрипте есть такая строка:
RUN unzip myzipfile.zip
В этой строке скрипта происходит сбой со следующей ошибкой:
/bin/sh: unzip: command not found
Это в Red Hat Enterprise Linux 7, и базовый образ Docker также является базовым образом RHEL7.
Если утилита unzip отсутствует в среде сборки Docker, как мне что-то распаковать? unzip присутствует на сервере, выполняющем сборку, хотя я полагаю, что это не помогает. Есть ли альтернативная утилита, которую я должен проверить, которая может распаковывать файлы, или распаковка должна быть установлена в базовом образе?
Если есть какой-либо способ сделать это без необходимости устанавливать что-либо, это было бы предпочтительнее, поскольку я не думаю, что у меня есть разрешение на это, и даже если бы я это сделал, сервер, на котором происходит сборка Docker, не подключен к интернет.
Вы должны установить unzip
с участием yum install unzip
. Если ты не хочешь unzip
Чтобы попасть в финальное изображение, у вас есть несколько вариантов:
tar.gz
и использовать ADD myfile.tar.gz /some/folder
и Docker автоматически распакует его туда.Использовать многоступенчатая сборка установить unzip
, подготовьте файлы, а затем скопируйте файлы на втором этапе.
FROM registry.access.redhat.com/rhel7/rhel AS builder
RUN yum install unzip
ADD myfile.zip /dist
RUN cd /dist && unzip myfile.zip && rm myfile.zip
FROM registry.access.redhat.com/rhel7/rhel
COPY --from=builder /dist/ /target