[PRUEBA] Imagen Raspbian Beta

:warning: Aviso para los probadores :warning:

Con el fin de simplificar la vida de nuestro servidor @pierre-gilles y para que pueda pasar aún más tiempo en el código :wink:, los builds de la imagen raspbian pueden ser automatizados.

Por lo tanto, he implementado y configurado pi-gen para construir una imagen Gladys. (pi-gen es la herramienta oficial de la fundación Raspberry).

Lo he probado en un rpi 3 B+ pero necesito voluntarios.

El repositorio está en github => GitHub - VonOx/gladys-pi-gen: Gladys Assistant official Raspberry Pi OS image · GitHub

Información sobre el build:

  • Kernel 4.19
  • Base debian lite buster
  • Openssh
  • Docker
  • Reduce (Eliminación de todas las páginas de manual, documentación y caché de apt)

Tamaño de la imagen 635MB

Primer arranque

  • partición de la tarjeta SD extendida
  • reinicio
  • Carga de los contenedores Watchtower y Gladys

Nota:

  • Se necesitan aproximadamente 15 minutos durante el primer arranque para que el contenedor Gladys esté disponible
  • Al conectarse por primera vez a través de SSH, deberá cambiar la contraseña (gladys/raspberry por defecto)

[u]Descarga:[u]

El archivo info contiene todos los paquetes instalados

He subido los archivos a un compartir OneDrive.

Captura de pantalla:

El build es de hoy :slight_smile:


Registro de cambios:

2020-05-27 - Nueva imagen => reglas udev y registro de 10MB máximo para docker
2020-04-28 - Nueva imagen con las imágenes Docker (docker save)
2020-04-21 - Código en Github
2020-04-16 - Primera versión

¡Aaaah, genial! ¡Bien jugado!

¿Sabes si sería posible hacer el tratamiento que haces en el primer arranque antes? Tengo miedo de que sea un paso que a menudo falla en los usuarios (mala conexión, por ejemplo, el usuario no tiene ni idea de cuándo va a terminar…)

¿Proporcionar la imagen con los contenedores creados? Sí, es posible

Aquí he creado un servicio (systemctl) que espera a que la red esté activa.
Al iniciar, verifica que los contenedores existan.

La ventaja es que siempre se descarga la última versión.

En mi opinión, la opción o la imagen se descarga solo al arrancar, es una experiencia muy frustrante para los usuarios: es imposible saber en qué punto está, si tu conexión no es buena puede tardar 2 horas pero no sabes qué está pasando.

Después, si construimos la imagen Raspbian en cada construcción de la imagen Docker, al final es lo mismo, la imagen siempre estará actualizada :slight_smile:

Sí, ya veo, no es un problema (me he cabreado un poco haciendo un servicio :smiley: / no pasa nada, he aprendido cosas ^^ ).

Voy a modificar el build, los contenedores ya estarán creados. También voy a modificar el servicio para « monitorizar » estos contenedores y registrar en dmesg.

He subido a Github, el build está en curso teniendo en cuenta los cambios

Vaya, @VonOx, ¡qué gran idea! Lo pruebo y te cuento pronto.

Estaba hecho polvo anoche, no subí la imagen, lo haré esta noche para los que les interese.

Me retracto de lo que dije, el cross build no me permite descargar una imagen durante la compilación porque Docker no sabe en qué arquitectura se está ejecutando.

level=error msg="failure getting variant" error="getCPUInfo for pattern: Cpu architecture: not found"

Una solución posible sería guardar la imagen => docker image save | Docker Docs
Y cargarla al primer arranque => docker image load | Docker Docs

Aún no lo he probado, pero probablemente sea lento porque es un zip / descomprimir.
¿Qué opinas @pierre-gilles ?

Lo intenté con el guardado/carga

Es chido, 15 minutos para untar en un rpi b+

Ah, vaya, ¿no hay forma de sortearlo? ¿No puedes especificar la arquitectura en el comando docker pull?

Prefiero esto en comparación con la descarga, que depende de tu conexión. En casa de alguien con ADSL, la descarga será más de 1 hora, mientras que untar el tiempo se mantendrá constante :slight_smile:

¡Bien jugado en todo caso por todas estas investigaciones!

He hecho push en Github y he subido una nueva imagen (+147 MB)

¡Genial! Oye, ¿haces bien un load style:

docker load --input ton-image.tar

¿No has comprimido la imagen? Lo digo para ver si no podemos ahorrar tiempo, si está comprimida, tarda más en descomprimirse, ¡en mi opinión!

https://github.com/VonOx/gladys-pi-gen/blob/gladys/gladys/03-prepare-docker/00-run.sh

El docker save hace la compresión, no hay opción.

Nueva compilación:

  • Registrar un log de 10MB máximo para gladys
  • Primera versión de las reglas udev (solo en el host / estoy buscando una forma elegante y segura de hacerlo en la imagen docker)

Espero sus comentarios :wink:

¡Genial! :clap:

¿No hay forma de hacer el docker run antes para que la historia del tiempo sea un poco más larga en el primer arranque?

Aún no tengo una solución, el demonio de Docker no sabe en qué arquitectura se encuentra (error de qemu) y el demonio nunca se lanza durante la compilación.

No pierdo la esperanza :sweat_smile:

¿Y si pasamos por una imagen que no usa la arquitectura? (no sé si es posible)

Ni siquiera es el problema de la imagen de Docker. No puedo ejecutar el demonio de Docker de la imagen de Raspbian durante la compilación (chroot / qemu), hay un error en qemu, no da información sobre la arquitectura, el demonio de Docker falla sin esta información.

Para solucionarlo, guardo la imagen gracias al Docker del host que compila la imagen de Raspbian.

No sé si está claro :sweat_smile:

Mmm vale, qué pena. ¡Lo veo! :slight_smile:

No sé si lo has visto, pero ahora la fundación Raspberry Pi proporciona una imagen de 64 bits ^^ Tendremos que compilar 2 imágenes :sweat_smile: