tag run library imagenes hub example dockers container docker dockerhub

run - download docker image



Construcción automatizada de Docker Hub-Etiquetado (6)

¡El etiquetado automatizado de imágenes de la ventana acoplable está disponible en dockerhub! Jugué con esto recientemente y quería compartir mis hallazgos, saltando a este hilo (¡espero que esté bien!)

Así que tengo un repositorio público de GitHub con un enlace de compilación automatizado en dockerhub. Quiero que la :latest etiqueta se actualice cada vez que empujo a la rama master . Además, quiero que se creen las etiquetas vX.YZ :XY y :XYZ para cada versión que cree en GitHub (etiquetada como vX.YZ en GitHub).

Aquí es cómo se ve la configuración de configuración de compilación para admitir esto:

Y en el texto es más fácil copiar y pegar:

| Type | Name | Dockerfile Location | Docker Tag Name | |--------|-----------------------------------|---------------------|-----------------| | Branch | master | / | latest | | Tag | /^v([0-9]+)/.([0-9]+)/.([0-9]+)$/ | / | {/1} | | Tag | /^v([0-9]+)/.([0-9]+)/.([0-9]+)$/ | / | {/1}.{/2} | | Tag | /^v([0-9]+)/.([0-9]+)/.([0-9]+)$/ | / | {/1}.{/2}.{/3} |

¡Espero que esto ayude!

Al especificar una compilación automatizada en Docker Hub, puedo establecer algunas configuraciones ( Type (''Rama'' o ''Etiqueta''), Name , Dockerfile Location y Docker Tag Name ). Pero desafortunadamente no encontré ninguna documentación para eso.

Supongo que cuando escojo Type ''Rama'' e ingrese un Name , esta es la rama de mi repositorio de git en GitHub / BitBucket que se está usando y que el Docker Tag Name que la etiqueta se asigne a la imagen creada.

Jugué un poco con él y encontré algunas cosas que no me son claras, pero espero que me puedas explicar.

  • al agregar más de una entrada, solo se asigna una etiqueta. Usé ''Branch'', ''master'' y ''/'' y ''latest'' como el Docker Tag Name en la primera, ''v1'' en la segunda. Pero solo se usa ''v1'' como etiqueta.

  • El uso de Type ''Etiqueta'' no resultó en un resultado diferente. Pensé que esto solo podría construir una imagen si un commit git está etiquetado con este valor. ¿Para qué es este tipo?

Estaba buscando la capacidad de asignar la etiqueta "más reciente" a la compilación más reciente y usar un esquema como v1, v2, v3, etc. para las compilaciones más antiguas que podría hacer cuando construyo imágenes localmente.


Esto es MUY FÁCIL en 2 PASOS ...

PASO 1 - Haga clic en el enlace Generación automatizada

PASO 2: agregue múltiples compilaciones automatizadas al mismo repositorio de la ventana acoplable (la mayoría de las personas no saben que puede agregar múltiples compilaciones automatizadas) haciendo clic en el BOTÓN AZUL PLUS (vea la imagen a continuación)

En el ejemplo de la imagen de arriba estoy ...

  • agregando una "última" etiqueta acoplable que se asigna a la rama maestra de github
  • agregando una etiqueta docker "0.1.0" que se asigna a la etiqueta github 0.1.0

Tenga en cuenta que la etiqueta github debe existir!

AHORA, cuando hago clic en guardar y desencadenar las compilaciones de compilación 2 se inician, una para la etiqueta más reciente y otra para la etiqueta 0.1.0.

Simple cuando sabes cómo hacerlo :) Pensé que te daría una respuesta completa aquí, ya que está mal documentado.


Hace unos meses contacté con el servicio de asistencia de la ventana acoplable para proporcionar explícitamente números de versión y eso no era compatible en ese momento.

Lo que especifique en el concentrador de la ventana acoplable es la etiqueta / rama git que se observará. El resultado de la construcción siempre será etiquetado como latest .


Mi solución para asignar la etiqueta "más reciente" a la última compilación es usar la siguiente configuración en la compilación automatizada:

| Type | Name | Dockerfile Location | Tag Name | | Branch | master | / | latest |

Cada vez que hay un commit en master, se crea una nueva compilación con la etiqueta "latest".

Hubo un problema hace unos días, donde la compilación automatizada usaba el nombre de la rama como el nombre de la etiqueta, por lo que es posible que encuentre un par de compilaciones con el "maestro". Esto se ha corregido: forums.docker.com/t/automated-builds-not-tagging-latest/683


No he usado esta función todavía, así que puedo estar equivocado, pero hoy, cuando fui a la pestaña de build settings y seleccioné la tag para el segundo tipo de compilación, tenía automáticamente la expresión regular /.*/ que seleccionará todas las etiquetas.

Actualizaré esto tan pronto como lo pruebe.


Usman respondió con una solución alternativa para una pregunta similar en https://.com/a/26107743/155689

Básicamente

  • entrar en la configuración de compilación automatizada,
  • agregar otro tipo de compilación usando la etiqueta
  • ingrese un nombre de etiqueta git
  • y dale un nombre de version
  • haga clic en guardar y desencadenar la construcción

Como puede ver, he hecho esto para esta compilación automatizada