Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

737
Views
¿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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!