Estoy tratando de construir e implementar imágenes de microservicios en un clúster de Kubernetes de un solo nodo que se ejecuta en mi máquina de desarrollo usando minikube. Estoy usando la aplicación de demostración de microservicios nativa de la nube Online Boutique de Google para comprender el uso de tecnologías como Kubernetes, Istio, etc.
Enlace al repositorio de github: microservicios-demo
Mientras sigo el proceso de instalación y ejecuto el comando skaffold run para compilar e implementar mi aplicación, recibo algunos errores:
Step 10/11 : RUN apt-get -qq update && apt-get install -y --no-install-recommends curl ---> Running in 43d61232617c W: GPG error: http://deb.debian.org/debian buster InRelease: At least one invalid signature was encountered. E: The repository 'http://deb.debian.org/debian buster InRelease' is not signed. W: GPG error: http://deb.debian.org/debian buster-updates InRelease: At least one invalid signature was encountered. E: The repository 'http://deb.debian.org/debian buster-updates InRelease' is not signed. W: GPG error: http://security.debian.org/debian-security buster/updates InRelease: At least one invalid signature was encountered. E: The repository 'http://security.debian.org/debian-security buster/updates InRelease' is not signed. failed to build: couldn't build "loadgenerator": unable to stream build output: The command '/bin/sh -c apt-get -qq update && apt-get install -y --no-install-recommends curl' returned a non-zero code: 100Recibo estos errores cuando intento construir un generador de carga. ¿Cómo puedo resolver este problema?
Se encontró al menos una firma no válida
El error sugiere que uno de los archivos en /var/lib/apt/lists al menos una firma inválida/corrupta (podría ser el resultado de un mal uso apt-key o algo más).
Intente ejecutar la actualización de Apt con los mensajes de depuración:
apt-get -oDebug::pkgAcquire::Worker=1 updateque debería señalarle el archivo dañado, por ejemplo
0% [Funcionando] <- gpgv:400%20URI%20Failure%0aMessage:%20At%20least%20one%20invalid%20signature%20era%20encontrado.%0aURI:%20gpgv:/var/lib/apt/lists/parcial/CorruptedFile_InRelease
Edite el archivo, busque y elimine las partes dañadas, o elimine el archivo completo, para poder volver a crearlo.
Tuve este mismo problema y ninguna de las respuestas anteriores que decían podar imágenes o contenedores funcionó. La razón era que mi caché de compilación de Docker ocupaba la mayor parte del espacio. Ejecutar el siguiente comando solucionó el problema:
docker system pruneLuego puede verificar si funcionó ejecutando:
docker system dfACTUALIZAR:
El comando anterior borrará todo el sistema Docker. Si desea borrar solo el caché de compilación, puede hacerlo con el siguiente comando (crédito a saraf.gahl ):
docker builder pruneLa razón por la que generalmente veo esto es porque la ventana acoplable se quedó sin espacio en el disco, lo cual es frustrante porque el error da pocas indicaciones de que ese sea el problema. Primero intente limpiar las imágenes y los contenedores que no necesita con el comando prune https://docs.docker.com/config/pruning/ .
$ docker image prune $ docker container pruneSi tiene muchas imágenes acumuladas y desea eliminar todas las que no están asociadas con un contenedor existente, intente:
$ docker image prune -aO puede eliminar solo las imágenes más antiguas:
$ docker image prune -a --filter "until=24h"Finalmente, en MacOS, donde Docker se ejecuta dentro de una máquina virtual dedicada, es posible que deba aumentar el disco disponible para Docker desde la aplicación Docker Desktop (Configuración -> Recursos -> Avanzado -> Tamaño de imagen de disco).
Hay algunas razones por las que te encuentras con estos errores:
Puede haber un problema con la memoria caché y/o el espacio en disco existente. Para solucionarlo, debe borrar el caché de APT ejecutando: sudo apt-get clean y sudo apt-get update .
Lo mismo ocurre con las imágenes acoplables existentes. Ejecute: docker image prune -f y docker container prune -f para eliminar los datos no utilizados y liberar espacio en el disco.
Si no le importan los riesgos de seguridad, puede intentar ejecutar el comando apt-get con el --allow-unauthenticated unauthenticated o --allow-insecure-repositories . Según los documentos :
Ignore si los paquetes no se pueden autenticar y no pregunte al respecto. Esto puede ser útil cuando se trabaja con repositorios locales, pero es un gran riesgo de seguridad si el propio usuario no garantiza la autenticidad de los datos de otra manera.
Por favor, avíseme si eso ayudó.
Creo que está relacionado con algún componente LSM de la imagen oficial de la ventana acoplable (en este caso, armhf) y permisos de ejecución/capacidades. En este caso simple, sid flavor no puede manejar el tiempo correctamente. Y esto relacionado con la verificación del certificado, es la causa de la firma no válida. También sucede en ubuntu focal.
# docker run -it debian:buster /bin/date Sun Nov 15 11:30:44 UTC 2020 # docker run -it debian:sid /bin/date Thu Jan 1 00:00:00 UTC 1970Ninguno de estos funcionó para mí. Sin embargo, este comando funcionó:
docker volume pruneLiteralmente tenía 249 GB de volúmenes que pude recuperar.
Haz tu propia imagen sid en x64
# variables $WORKPLACE=/space_change_me $BASEIMG=debian:buster $TAG=my/debian $RELEASE=sid $PLATFORM=arm # multiarch preparation apt-get update apt-get -y install apt-transport-https ca-certificates curl gnupg lsb-release curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null apt-get update apt-get -y install qemu binfmt-support qemu-user-static docker-ce byobu make export DOCKER_CLI_EXPERIMENTAL=enabled #build image docker run -i --rm -v $WORKPLACE:/data $BASEIMG /bin/bash << EOF export DEBIAN_FRONTEND="noninteractive" apt-get -y update apt-get -y install debootstrap debootstrap --verbose --include=iputils-ping --arch $PLATFORM $RELEASE /data/$RELEASE-$PLATFORM $REPO chroot /data/$RELEASE-$PLATFORM/ /bin/bash << SEOF export DEBIAN_FRONTEND="noninteractive" apt-get -y update apt-get -y upgrade apt-get -y clean SEOF rm -R /data/$RELEASE-$PLATFORM/debootstrap EOF cd $WORKPLACE/$RELEASE-$PLATFORM tar cpf - . | docker import - $TAG:$RELEASE-$PLATFORM --platform $PLATFORM docker save $TAG:$RELEASE-$PLATFORM > debian-$RELEASE-$PLATFORM.tarPuede cargar más tarde en el host armado con
cat debian-$RELEASE-$PLATFORM.tar |docker load@Jack Kawell lo hizo bien.
docker builder pruneEste comando hace el truco. Tenga cuidado con el comando " docker system prune " ya que esto eliminaría todas sus imágenes (muy destructivo). La poda del constructor solo elimina la caché de compilación que es donde tiene todos los pasos de compilación anteriores (almacenados en caché).
Probé algunas de las respuestas anteriores, y ninguna de ellas funcionó para mí. El desencadenante real fue cuando usé --allow-unauthenticated unauthenticated y --allow-insecure-repositories de la respuesta de @Wytrzymały Wiktor y recibí una notificación que mostraba
tar: ./conffiles: Cannot utime: Operation not permitted tar: ./control: Cannot utime: Operation not permitted tar: ./md5sums: Cannot utime: Operation not permitted tar: ./postinst: Cannot utime: Operation not permitted tar: .: Cannot utime: Operation not permitted tar: Exiting with failure status due to previous errorsEsto me llevó por una ruta donde encontré esta publicación que sugería que el problema puede ser que libseccomp2 estaba desactualizado.
La solución que había que hacer:
# Get signing keys to verify the new packages, otherwise they will not install sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 04EE7237B7D453EC 648ACFD622F3D138 # Add the Buster backport repository to apt sources.list echo 'deb http://httpredir.debian.org/debian buster-backports main contrib non-free' | sudo tee -a /etc/apt/sources.list.d/debian-backports.list sudo apt update ; sudo apt install libseccomp2 -t buster-backportsTenga en cuenta que esto supone que está utilizando Raspbian y una versión de docker posterior a 19.04
Yo tuve el mismo problema. Parece que fue por falta de espacio. Eliminé las imágenes antiguas y comenzó a funcionar.
$ docker images
Seleccione los que ya no le interesan (para eliminar).
$ docker rmi <image_id>