Tengo una imagen acoplable que recibe un conjunto de variables de entorno para personalizar su ejecución.
Un ejemplo simple sería un servidor web, que tiene cosas como el secreto del cliente para OAuth2, un secreto para firmar cookies, etc.
Toda la aplicación está en contenedores en una imagen acoplable, que recibe variables de entorno (tiempo de ejecución).
Distribuyo esa imagen de la ventana acoplable en un registro privado, y me gustaría documentar esa imagen, para que los usuarios puedan entender cómo pueden personalizar la imagen.
¿Es posible enviar, como parte de la imagen de la ventana acoplable, anotaciones que, por ejemplo, utilizan docker describe my_image
la reducción de salida a la salida estándar?
Por supuesto, podría usar una página estática en la web para la documentación, pero el usuario aún necesitaría saber dónde se puede encontrar esa documentación, y toda la distribución sería más completa de esta manera (por ejemplo, la documentación cambia con la etiqueta de imagen).
¿Algunas ideas?
Respuestas:
No hay una bala de plata aquí hasta donde yo sé. Todas las soluciones a continuación funcionan, pero requieren que se informe al usuario sobre cómo recuperar la documentación.
No hay una forma estándar de hacerlo.La iniciativa de contenedor abierto ha creado una anotación de especificaciones de imagen que sugiere que
org.opencontainers.image.documentation
.org.opencontainers.image.description
Según OCI, una de las variaciones de la opción 1 a continuación es correcta.
Opción 1: Proporcionar un enlace en una etiqueta (Preferido por OCI )
Suponiendo que el Dockerfile y los activos relacionados están controlados por la versión en un repositorio git que es de acceso público (por ejemplo, en github), ese repositorio git también podría contener un archivo README.md. Si tiene una tubería conectada al repositorio que construye y publica la imagen de Docker en un registro automáticamente, puede configurar el comando de compilación de Docker para agregar una etiqueta con un enlace a la documentación de la siguiente manera
Esta solución se vincula a documentación de confirmación específica para esa confirmación particular versionada junto con su Dockerfile. Sin embargo, requiere que el usuario tenga acceso a Internet para poder leer la documentación
Opción 1b: Proporcionar documentación completa en una etiqueta (Preferido por OCI )
Una variación de la opción 1 donde la documentación completa se serializa y se coloca en la etiqueta (no hay restricciones de longitud en las etiquetas). De esta forma, la documentación se incluye con la imagen misma.
Como señaló Jorge Leitao en los comentarios, la especificación de anotación de imagen de OCI especifica el nombre de una etiqueta como
org.opencontainers.image.description
Opción 2: agrupación de documentación dentro de la imagen
Si prefiere agrupar el archivo Readme.md dentro de la imagen para que sea independiente de cualquier página web externa, tenga en cuenta lo siguiente
Al compilar, asegúrese de copiar el archivo Readme.md a la imagen del acoplador. También cree un script de shell simple
describe
que genere el archivo Readme.mddescribir
Adiciones de archivos Docker
Un usuario que tenga su imagen de Docker ahora puede ejecutar el siguiente comando para que se envíe la rebaja a stdout
Esta solución incluye la documentación de esta versión particular de la imagen dentro de la imagen y se puede recuperar sin ninguna dependencia externa.
fuente
org.opencontainers.image.description
IMO que se usa para lo que usted describe.