Como descompactar o arquivo zip no ambiente de construção do docker rhel7-o comando descompactar não foi encontrado no sistema operacional

Como parte de uma compilação do docker, tenho uma linha no script assim:

RUN unzip myzipfile.zip

Nessa linha do script, ele está falhando com o seguinte erro:

/bin/sh: unzip: command not found

Isso está no Red Hat Enterprise Linux 7, e a imagem base do Docker também é uma imagem base do RHEL7.

Se o utilitário unzip não estiver presente no ambiente de construção do Docker, como faço para descompactar algo? descompacte está presente no servidor que está fazendo a compilação, embora eu suponho que isso não ajude. Existe um utilitário alternativo que devo verificar se pode descompactar arquivos ou o descompactar precisa ser instalado na imagem base?

Se houver alguma maneira de fazer isso sem precisar instalar nada, isso seria preferível, pois acho que Não tenho permissão para fazer isso e, mesmo que o tenha feito, o servidor no qual a construção do Docker acontece não está conectado à internet.

Você tem que instalar unzip com yum install unzip. Se você não quiser unzip para estar na imagem final, você tem algumas opções:

  1. Se o arquivo vem da máquina de compilação, você pode descompactá-lo lá primeiro.
  2. Se o arquivo vem da máquina de compilação e você pode alterá-lo, reembalá-lo como tar.gz e usar ADD myfile.tar.gz /some/folder e o Docker irá descompactá-lo automaticamente lá.
  3. Usar construção de vários estágios instalar unzip, prepare os arquivos e copie os arquivos no segundo estágio.

    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