7 votes

Comment dézipper un fichier zip dans l'environnement de construction docker rhel7 - la commande unzip n'est pas trouvée bien qu'elle soit dans le système d'exploitation.

Dans le cadre d'une construction docker, j'ai une ligne dans le script comme ceci :

RUN unzip myzipfile.zip

Sur cette ligne dans le script, il échoue avec l'erreur suivante :

/bin/sh: unzip: command not found

Nous sommes sur Red Hat Enterprise Linux 7, et l'image Docker de base est également une image de base RHEL7.

Si l'utilitaire unzip n'est pas présent dans l'environnement de construction de Docker, comment puis-je dézipper quelque chose ? unzip est présent sur le serveur qui effectue la construction, mais je suppose que cela n'aide pas. Existe-t-il un autre utilitaire permettant de décompresser des fichiers, ou unzip doit-il être installé dans l'image de base ?

S'il existe un moyen de le faire sans avoir à installer quoi que ce soit, ce serait préférable, car je ne pense pas avoir la permission de le faire, et même si c'était le cas, le serveur sur lequel la compilation Docker a lieu n'est pas connecté à Internet.

3voto

Esteban Yanson Points 1

Vous devez installer unzip con yum install unzip . Si vous ne voulez pas unzip pour être dans l'image finale, vous avez quelques options :

  1. Si le fichier provient de la machine de construction, vous pouvez d'abord le décompresser à cet endroit.
  2. Si le fichier provient de la machine de construction et que vous pouvez le modifier, repackez-le en tant que tar.gz et utiliser ADD myfile.tar.gz /some/folder et Docker le décompressera automatiquement à cet endroit.
  3. Utilice construction en plusieurs étapes pour installer unzip préparer les fichiers, puis copier les fichiers dans la deuxième étape.

    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

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X