Obteniendo un error al construir el siguiente archivo Docker
FROM ubuntu:21.04 RUN apt-get update && \ apt-get install --no-install-recommends -y curl=7.\* && \ apt-get install --no-install-recommends -y unzip=6.\* &&\ rm -rf /var/lib/apt/lists/* RUN apt-get update && \ mkdir -p /usr/share/man/man1 && \ apt-get install --no-install-recommends -y maven=3.6.3-5 && \ apt-get clean && \ rm -rf /var/lib/apt/lists/*
El error ocurre cuando se ejecuta la segunda apt-get update
.
El error es el siguiente: -
E: The repository 'http://security.ubuntu.com/ubuntu hirsute-security InRelease' is not signed. W: GPG error: http://archive.ubuntu.com/ubuntu hirsute InRelease: gpgv, gpgv2 or gpgv1 required for verification, but neither seems installed E: The repository 'http://archive.ubuntu.com/ubuntu hirsute InRelease' is not signed. W: GPG error: http://archive.ubuntu.com/ubuntu hirsute-updates InRelease: gpgv, gpgv2 or gpgv1 required for verification, but neither seems installed E: The repository 'http://archive.ubuntu.com/ubuntu hirsute-updates InRelease' is not signed. W: GPG error: http://archive.ubuntu.com/ubuntu hirsute-backports InRelease: gpgv, gpgv2 or gpgv1 required for verification, but neither seems installed E: The repository 'http://archive.ubuntu.com/ubuntu hirsute-backports InRelease' is not signed.
Se agradece cualquier tipo de ayuda.
Me ha funcionado sustituir apt-get
por apt
.
Actualice la versión de Docker a la última para resolver este problema.
Para los usuarios de ubuntu, siga estos pasos:
curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh
Para otros, consulte este enlace: https://docs.docker.com/engine/install/
Me encontré con este problema cuando estaba ejecutando la imagen de Ubuntu 21.04 bajo Rootless Docker, pero el comando apt-get update
funcionó bien bajo el sistema Docker (invocado a través de sudo
). Dado que mi necesidad era solo para una prueba manual de un script de configuración del entorno, solo ejecuté bajo el sistema Docker pero, dependiendo de su aplicación, eso podría no ser seguro.
Este error no ocurre si se usa una versión más reciente de Docker (probado con 20.10). Si usa una versión anterior de Docker, le recomiendo cambiar a una versión anterior de la imagen de ubuntu. Probé ubuntu: 20.10 con Docker 19.03 y funcionó bien. Esto se discute aquí: https://bugs.launchpad.net/cloud-images/+bug/1928218
Ejecuté su archivo docker y obtengo el mismo error. Jugar con varias formas de desactivar la verificación tampoco produjo buenos resultados. Tampoco eliminar las restricciones de versión y simplemente instalar las últimas versiones de las herramientas. La única solución que pude encontrar fue degradar ubuntu a 20.04, pero no hay una versión 3.6.3-5 de maven para esa versión del sistema operativo, solo 3.6.3-1 (afaik).
Lo más cerca que pude trabajar es bastante diferente de la imagen deseada:
FROM ubuntu:20.04 RUN apt update && \ apt install --no-install-recommends -y curl=7.\* unzip=6.\* maven=3.6.3-1 && \ apt clean && \ rm -rf /var/lib/apt/lists/* && \ mkdir -p /usr/share/man/man1
También tenga en cuenta cómo uso apt
en lugar de apt-get
y solo hago una sola ejecución (lo que hace una imagen más simple al tener solo una capa) y solo una apt update
y encadeno las cosas que quiero instalar en una sola apt install
en lugar de separados. Esto es más rápido y más fácil.
Sin embargo, si desea un cuadro de compilación experto, tal vez sea mejor que use una de las imágenes maven preconstruidas de docker hub que se basan en imágenes openjdk. Para java, la distribución de linux subyacente rara vez importa y las imágenes de openjdk son bastante respetadas:
from maven:3.6.3-jdk-11 run apt update && apt install -y curl unzip && apt clean
Eso es un error en la interacción docker/seccomp/glibc: https://bugs.launchpad.net/ubuntu/+source/glibc/+bug/1916485