Eliminar imagen de Docker al reconstruir la aplicación

¿Podemos usar el comando de eliminación de contenedores de Docker mientras reconstruimos la aplicación en el archivo app.yml o en el archivo del lanzador?

docker image prune -a --force

o

./launcher cleanup

Si tienes alguna idea sobre esto, por favor responde a esta consulta.

Gracias de antemano :grinning:

Puede ejecutar ./launcher cleanup app primero para eliminar todos los contenedores detenidos.

Normalmente ejecuta esto antes de reconstruir mientras el último contenedor aún se está ejecutando.

Hola @merefield

Estos comandos me funcionan ./launcher cleanup app, pero en realidad añado estos comandos en el archivo app.yml o en los archivos del lanzador.

Solo estoy usando un comando: ./launcher rebuild app. ¿Puedo poner estos comandos en los archivos que mencioné anteriormente?

El hecho de que eso nunca se recomiende me lleva a pensar que ejecutar ese comando durante una reconstrucción podría no funcionar o no ser seguro.

¿Podrías intentar ejecutarlos en serie en un script de bash?

¿Podrías intentar ejecutarlos en serie en un script de bash?

Ya creé un script de bash personalizado para reconstruir la aplicación y, después de reconstruir, eliminé las imágenes de docker no utilizadas de un contenedor de docker de discourse.

Sin embargo, me interesa saber si estos comandos se pueden agregar al archivo app.yml o al archivo launcher.

Experimenté con ellos en el sitio de staging una vez, pero encontré un problema en el archivo launcher. Si bien los comandos me funcionan, usarlos resulta en la eliminación de todas las imágenes.
docker image prune -a --force

Para solucionar esto, incorporé un filtro para las últimas 24 horas en el comando:
docker image prune -a --force --filter "until=240h" y esta solución me resulta efectiva.

¿Qué problema intentas resolver? ¿Tienes muy poco espacio en disco para crear un contenedor sin eliminar el anterior? Es peligroso, ya que si algo sale mal, estás perdido.

No puedes hacerlo en el lanzador, ya que esos comandos se ejecutan dentro del contenedor. Puedes hacerlo en un script de shell que haría eso y ejecutar el lanzador.

2 Me gusta