Cómo descomprimir un archivo zip en el entorno de compilación de rhel7 docker: no se encontró el comando descomprimir, aunque está en el sistema operativo

Como parte de una compilación de docker, tengo una línea en el script así:

RUN unzip myzipfile.zip

En esa línea del script, está fallando con el siguiente error:

/bin/sh: unzip: command not found

Esto es en Red Hat Enterprise Linux 7, y la imagen base de Docker también es una imagen base de RHEL7.

Si la utilidad de descompresión no está presente en el entorno de compilación de Docker, ¿cómo descomprimo algo? unzip está presente en el servidor que está haciendo la compilación, aunque supongo que eso no ayuda. ¿Hay alguna utilidad alternativa que deba verificar que pueda descomprimir archivos, o es necesario instalar unzip en la imagen base?

Si hay alguna forma de hacer esto sin necesidad de instalar nada, sería preferible, ya que no creo que tenga permiso para hacerlo, e incluso si lo hiciera, el servidor en el que ocurre la compilación de Docker no está conectado a Internet.

Tienes que instalar unzip con yum install unzip. Si no quieres unzip para estar en la imagen final, tienes algunas opciones:

  1. Si el archivo proviene de la máquina de compilación, primero puede descomprimirlo allí.
  2. Si el archivo proviene de la máquina de compilación y puede cambiarlo, vuelva a empaquetarlo como tar.gz y uso ADD myfile.tar.gz /some/folder y Docker lo descomprimirá automáticamente allí.
  3. Utilizar construcción en varias etapas instalar unzip, prepare los archivos y, a continuación, cópielos en la segunda etapa.

    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