Digamos en comparación con la imagen remota en dockerhub. He estado buscando una forma canónica de hacer esto, pero todo lo que he podido encontrar son scripts bash quebradizos y cosas por el estilo. No hay una forma oficial recomendada de realizar dicha verificación. Una pregunta de desbordamiento de pila tampoco ha dado lugar a respuestas definitivas todavía. Tampoco esta pregunta similar .
Ser capaz de verificar si una imagen local está desactualizada en comparación con su remota es bastante útil para los entornos de desarrollo y preparación (docker-cloud incluso le permite configurar contenedores de actualización automática para esto). Sé que existe la posibilidad de usar un webhook para activar un re-pull después de una compilación de imagen exitosa, pero digamos que quiero poder iniciar la verificación desde mi servidor, en lugar de tener que escucharlo.
¿Estoy en lo cierto al suponer que actualmente no hay un comando de la ventana acoplable disponible para realizar esta verificación, o me he perdido una solución nativa de la ventana acoplable obvia para este problema?
No, actualmente no hay una opción incorporada para verificar si una imagen está "desactualizada". La actualización automática de contenedores es algo que realmente difiere según el caso de uso; La actualización "ciega" a la última imagen no es trivial. Por ejemplo, some-image:latest
puede resultar en una imagen _completamente_ diferente (por ejemplo, ubuntu:latest
refiere a la última versión "LTS", que en algún momento cambió de 14.04 a 16.04), al mismo tiempo, some-image:1.2.3
"se ve" como una etiqueta SemVer (ish), pero no hay garantía, porque depende del autor de la imagen decidir sobre el esquema de "etiqueta" y lo que significa (básicamente, las etiquetas son solo un formulario "etiqueta").
Por esta razón, se recomienda utilizar un identificador inmutable para sus contenedores (por ejemplo, ubuntu<strong i="9">@sha256</strong>:aabbbcccddd
); que le permite _probar_ la versión exacta de la imagen que está ejecutando y tener la garantía de que es la misma versión que se probó en su proceso de control de calidad.
Dicho lo anterior, existen algunas opciones;
docker compose
, puede docker-compose pull
para extraer la última versión de todas las imágenes utilizadas en su pila de redaccióndocker build --pull .....
forzar la extracción de la imagen definida en FROM
antes de comenzar una construccióndocker service update --force --image foo:bar <servicename>
resuelve la última versión de la imagen foo:bar
especificada y "fija" todas las instancias del servicio a esa versiónEspero que esto responda tu pregunta. Tenga en cuenta que el rastreador de problemas de GitHub no está diseñado como un foro de soporte general, sino para informar errores y solicitudes de funciones. Para otro tipo de preguntas, considere usar una de;
Voy a cerrar este problema porque esto no es un error, pero siéntete libre de continuar la conversación 👍
Sin embargo, existe una diferencia entre "actualizar a ciegas" y simplemente recibir una notificación sobre el cambio de imagen remota (usando la misma etiqueta), para que pueda comenzar su proceso de compilación y control de calidad.
En efecto. Un mecanismo estable mediante el cual uno pueda detectar actualizaciones en un contenedor _sin volver a descargar el contenedor completo todos los días_ sería increíble.
Las actualizaciones de seguridad son extremadamente importantes, y la falta de esta función no hace que sea más fácil mantenerse actualizado ...
Comentario más útil
Sin embargo, existe una diferencia entre "actualizar a ciegas" y simplemente recibir una notificación sobre el cambio de imagen remota (usando la misma etiqueta), para que pueda comenzar su proceso de compilación y control de calidad.