Buenas, continuando con la entrada anterior y con la idea de no perder el ritmo, aunque sea con entradas rápidas, sencillas y para toda la familia.

Después de crear una imagen de Docker que desplegase el bot, el siguiente paso era poder compartirla.

Docker Hub es un registro proporcionado por Docker Inc donde podemos alojar nuestras imágenes, tanto públicas como privadas.

Uno de los métodos de los que disponemos para subir nuestras imágenes es la configuración de builds automatizados. Esto nos permite que cuando hagamos un cambio en el código de nuestro repositorio de Github o Bitbucket se construya automáticamente una nueva imagen de Docker con dichos cambios.

Para este ejemplo voy a usar un repositorio en Github , lo primero es enlazar nuestra cuenta de Docker Hub con la de Github:

Después, dentro de las opciones de creación, seleccionamos crear automated build y marcamos Github:

Nos listará los repositorios que tenemos en nuestra cuenta, seleccionamos el que queremos, en mi caso pyEMTbot-docker y aparecerá el siguiente formulario:

La mayoría de estos datos podemos cambiarlos más tarde, al igual que activar/desactivar la opción de que la build se active con cada push o la nomenclatura de los tags. (Por ejemplo, yo creé el repo privado inicialmente y lo cambié a público una vez finalizadas las pruebas.)

Cuando creamos la build automática nos crea una primera imagen en el repositorio de Docker Hub, podemos ver las diferentes fases por las que pasa la construcción desde “Build Details”:

Cuando termina podemos acceder y ver los logs de la construcción:

Con cada push al repositorio se inicia el proceso de construcción automática:

Si en algún push, “rompemos” la imagen de Docker y no puede construirse nos aparecerá el “Error” en el histórico y podremos analizar en los detalles cual ha sido el fallo y corregirlo.

Una vez corregido el fallo, y la construcción ha finalizado correctamente, la imagen esta disponible para que cualquiera que use Docker pueda buscarla y usarla:

$ docker search pyEMT
NAME                       DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
andoniaf/pyemtbot-docker   Imagen de Docker que contiene un bot de tele…   0                                       [OK]

$ docker run -d -v ${PWD}/settings.py:/pyemtbot/settings.py andoniaf/pyemtbot-docker:latest
e08c755b2ab90c336933b6e6c81913b7177bd320bae42b5a40654373e686698f

$ docker ps
CONTAINER ID        IMAGE                             COMMAND                  CREATED             STATUS              PORTS          NAMES
e08c755b2ab9        andoniaf/pyemtbot-docker:latest   "python ./bot.py"        7 seconds ago       Up 4 seconds                       serene_johnson

Espero poder ir sacando más hueco para trastear con Docker y escribir alguna cosilla más.

~ Saludos y que la fuerza os acompañe!