Estoy experimentando el problema de Tu instalación de Docker no está funcionando correctamente después de ejecutar ./launcher rebuild app.
El error es docker: failed to register layer: Error processing tar file(exit status 1): write /usr/lib/x86_64-linux-gnu/libx265.a: no space left on device.
…Veo que uno de los consejos comunes para solucionar esto es ./launcher cleanup, pero antes de hacerlo, me gustaría verificar si es seguro usarlo, ya que estoy recibiendo:
ADVERTENCIA! Esto eliminará todos los contenedores detenidos.
ADVERTENCIA! Esto eliminará todas las imágenes que no tengan al menos un contenedor asociado a ellas.
¿Ayuda? Solo quiero asegurarme de no eliminar nada importante aquí.
docker: failed to register layer: Error processing tar file(exit status 1): write /usr/lib/x86_64-linux-gnu/libx265.a: no space left on device.
See 'docker run --help'.
Your Docker installation is not working correctly
…así que todavía no sé la respuesta a la pregunta: ¿es seguro usar ./launcher cleanup cuando el sitio no está en funcionamiento?
Por la captura de pantalla debajo de ‘docker images’ en la publicación principal, parece que hay muchas imágenes antiguas, pero no sé cómo dirigirlas específicamente para su eliminación, y si esto causaría algún problema.
Si el contenedor de Docker se está ejecutando, no eliminará el contenedor. Si el contenedor no se está ejecutando, lo eliminará, pero puedes reconstruir uno nuevo con ./launcher rebuild app.
Gracias, pero todavía no me queda muy claro. Docker no es mi fuerte, así que no sé si eliminar y reconstruir un contenedor podría estropear algo en mi sitio… ¿Sería más seguro poner la aplicación en marcha primero liberando espacio de forma selectiva? Algo así:
Primero, liberar algo de espacio eliminando una imagen específica.
Luego, ejecutar ./launcher start app
Una vez que la aplicación esté en marcha: ./launcher cleanup
… no estoy seguro de si esta precaución es necesaria. Quizás simplemente ejecutar ./launcher cleanup directamente funcionaría bien y no eliminaría nada importante, aunque mi aplicación no esté en marcha.
Pero en caso de que pienses que el enfoque anterior podría ser una opción: ¿conoces el comando para eliminar una imagen específica (paso 1 anterior)? Mira mis opciones de imágenes para eliminar a continuación.
Lo que haría es primero eliminar una o dos copias de seguridad. Eso debería darle suficiente espacio para que las cosas funcionen.
Si ejecuta ./launcher start app entonces ./launcher cleanup no eliminará su imagen que funciona, y su sitio seguirá funcionando mientras la limpieza progresa.
Si de alguna manera comete un error y elimina su imagen que funciona, y ha actualizado recientemente, hay una buena posibilidad de que simplemente pueda hacer un ./launcher rebuild app y estará en buena forma.
Si obtuviste un error de memoria en la reconstrucción, agregaría otro GB de swap, aunque eso hará que tu problema de espacio en disco sea más apretado (Parece que estás en un droplet pequeño con 25 GB de RAM, lo cual es apenas suficiente). Ejecutaría un ./launcher cleanup antes de cada reconstrucción, o tal vez solo tienes una gran cantidad de copias de seguridad y deberías moverlas a S3 ([Configurar un proveedor de almacenamiento de objetos compatible con S3 para cargas](Configure an S3 compatible object storage provider for uploads --puedes hacer solo copias de seguridad, no tienes que hacer todos los activos como se describe allí)).
El segundo error no fue un error de memoria, pero no pude identificar cuál era el nuevo error: de ahí el doctor.
De todos modos, ./discourse-doctor lo resolvió, solo me hubiera gustado saber qué sucedió realmente.
¡Gracias por tu ayuda!
Mi suposición fue que estabas confundiendo la RAM (memoria) con el espacio en disco. El error de memoria puede aparecer y desaparecer, y el error “error 127” es críptico y fácil de pasar por alto.