Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

729
Visualizações
¿El contenedor Docker no puede localizar los paquetes Zip?

Todos los repositorios de Ubuntu wiley se agregan a mi Dockerfile, a saber, main , universe , etc. y están presentes en mi imagen docker. Sin embargo, apt-get install en el siguiente Dockerfile no puede localizar ningún paquete ZIP/UnZIP. Registro de errores al final.

¿Cómo puedo instalar estos paquetes zip comunes? Al menos p7zip-full y rar .

Dockerfile

 FROM ubuntu:15.10 CMD ["bash"] RUN add-apt-repository main && \ add-apt-repository universe && \ add-apt-repository restricted && \ add-apt-repository multiverse RUN apt-get update -y && \ apt-get upgrade -y && \ apt-get dist-upgrade -y && \ apt-get -y autoremove && \ apt-get clean RUN apt-get install p7zip \ p7zip-full \ p7zip-rar \ unace \ unrar \ zip \ unzip \ xz-utils \ sharutils \ rar \ uudeview \ mpack \ arj \ cabextract \ file-roller \ && rm -rf /var/lib/apt/lists/*

ERROR LANZADO

 E: Unable to locate package p7zip-full E: Unable to locate package unace E: Unable to locate package unrar E: Unable to locate package zip E: Unable to locate package unzip E: Unable to locate package sharutils E: Unable to locate package rar E: Unable to locate package uudeview E: Unable to locate package mpack E: Unable to locate package arj E: Unable to locate package cabextract E: Unable to locate package file-roller
over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Probé con este Dockerfile (tu Dockerfile sin lo que te dije en mi comentario anterior):

 FROM ubuntu:15.10 RUN apt-get update -y && \ apt-get upgrade -y && \ apt-get dist-upgrade -y && \ apt-get -y autoremove && \ apt-get clean RUN apt-get install -y p7zip \ p7zip-full \ unace \ zip \ unzip \ xz-utils \ sharutils \ uudeview \ mpack \ arj \ cabextract \ file-roller \ && rm -rf /var/lib/apt/lists/* CMD ["bash"]

Funciona e instala zip y p7zip

 $ docker build -t mytest . $ docker run -d -ti --name mytest mytest /bin/bash $ docker exec -ti mytest /bin/bash root@f01fc3456a2a:/# zip root@f01fc3456a2a:/# p7zip
over 4 years ago · Santiago Trujillo Relatório

0

Según las mejores prácticas de Docker

La respuesta de @gile podría mejorarse con:

  • usando apt-get actualizar e instalar en una sola capa
  • evitando apt-get upgrade

https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#leverage-build-cache

Docker ve las instrucciones iniciales y modificadas como idénticas y reutiliza el caché de los pasos anteriores. Como resultado, la actualización de apt-get no se ejecuta porque la compilación usa la versión en caché. Debido a que la actualización de apt-get no se ejecuta, su compilación puede obtener una versión desactualizada de los paquetes curl y nginx.

El uso de EJECUTAR apt-get update && apt-get install -y garantiza que su Dockerfile instale las últimas versiones del paquete sin necesidad de codificación ni intervención manual. Esta técnica se conoce como "caché busting". También puede lograr la prevención de caché especificando una versión de paquete. Esto se conoce como fijación de versión.

Evite EJECUTAR apt-get upgrade y dist-upgrade, ya que muchos de los paquetes "esenciales" de las imágenes principales no pueden actualizarse dentro de un contenedor sin privilegios. Si un paquete contenido en la imagen principal está desactualizado, comuníquese con sus mantenedores. Si sabe que hay un paquete en particular, foo, que debe actualizarse, use apt-get install -y foo para actualizar automáticamente.

Esto debería ser lo mismo que la respuesta de @gile con las mejores prácticas aplicadas

 FROM ubuntu:15.10 RUN apt-get -y update \ && apt-get -y autoremove \ && apt-get clean \ && apt-get install -y p7zip \ p7zip-full \ unace \ zip \ unzip \ xz-utils \ sharutils \ uudeview \ mpack \ arj \ cabextract \ file-roller \ && rm -rf /var/lib/apt/lists/* CMD ["bash"]

*editar

La documentación de mejores prácticas de Docker se ha reorganizado.

El consejo sigue siendo el mismo. Si bien la parte de la documentación a la que se ancla el enlace anterior ahora simplemente alude a las preocupaciones entre el caché de compilación y apt-get...

Han añadido una nueva sección de documentación dedicada a este tema.

https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#apt-get

en breve:

Siempre combine RUN apt-get update con apt-get install en la misma instrucción RUN

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda