Como instalar Redmine y su Agile Plugin utilizando Docker y la interfaz gráfica Kitematic

0
305

1. Introducción

Hola a todos, seguro que muchos diréis que ya existía una entrada previa que contaba cómo instar una versión de Redmine en una máquina virtual y conectarla con Subversion.

Pero aprovechando la tendencia de los contenedores y las ventajas que nos dan, voy a enseñaros cómo montar rápidamente una instalación del software de gestión Redmine con una versión actualizada, usando para ello la interfaz gráfica Kitematic para la gestión del contenedor Docker correspondiente.

Es importante recordar que aunque Redmine es GPL, no sucede lo mismo con su plugin, que sí es de pago, aunque podemos usar una versión reducida Light, que sí es gratuita. En cualquier caso, esta versión es muy limitada y para trabajar medianamente bien necesitaremos pasar por caja para adquirir la versión PRO con un coste de 399$. Eso sí, podemos usar su Trial de 30 Días.

2. Entorno

Para realizar la instalación y el tutorial he utilizado:

Hardware: MacBook Pro 15″ 2018 – 2,2GHz i7 – 32GB (macOS Mojave 10.14.4)

Software:

3. Instalación

3.1 Registrarnos en DockerHub

En primer lugar nos registramos (gratis) en  DockerHub, para ello accedemos a https://hub.docker.com/signup y seguimos los pasos del registro.

DockerHub página de registro
DockerHub página de registro

3.2 Descargar Docker Desktop

Una vez registrados accedemos a https://hub.docker.com/ y seleccionamos la opción Get started with Docker Desktop que nos llevará al menú de descarga.

Página de acceso a la documentación y descargas de Docker Desktop
Docker Desktop descarga

Entre las opciones de descarga tenemos Windows y Mac, por defecto nos ofrecerá la que se corresponda con nuestro sistema operativo. Pulsamos Download Docker Desktop for Mac para comenzar la descarga.

Descarga directa del Docker.dmg para macOS
Descarga directa del Docker.dmg para macOS

Una vez descargado el archivo Docker.dmg vamos a la carpeta Descargas de nuestro mac y lo ejecutamos haciendo doble clic. Seguimos el proceso de instalación y acabamos añadiendo Docker a las aplicaciones.

Para finalizar la instalación de Docker, arrastramos para añadir a aplicaciones
Para finalizar la instalación de Docker, arrastramos para añadir a aplicaciones

Cuando intentemos ejecutarlo por primera vez, el sistema operativo nos pedirá por seguridad que confirmemos que queremos abrirlo al tratarse de una descarga de internet, confirmamos pulsando Open o Abrir (depende del idioma que tengáis configurado).

Ventana de macOS donde pide que se confirme por seguridad que queremos ejecutar Docker
Aviso de seguridad de macOS para Docker

3.3 Instalar Kitematic

Una vez arrancado Docker desktop nos aparecerá un icono en la barra superior. Para instalar la interfaz gráfica, sacamos el menú secundario y seleccionamos la opción Kitematic.

Esto lanzará la instalación, una vez instalada, seguimos de nuevo estos pasos para arrancar la interfaz.

Instalación de Kitematic desde el icono de Docker.
Instalación de Kitematic desde el icono de Docker.

Una vez finalizada la instalación nos aparecerá la interfaz gráfica.

Pantalla principal de la interfaz de Kitematic.
Pantalla principal de la interfaz de Kitematic.

Para poder utilizarla  debemos conectarnos a Docker Hub desde donde podremos descargar las imágenes de los Docker que queremos utilizar, en nuestro  caso el de Redmine.

Debemos logarnos en Kitematic para poder usarlo.
Debemos logarnos en Kitematic con el usuario de DockerHub para poder usarlo.

3.4 Obtener la imagen de Redmine

Una vez logados en Docker Hub buscamos la imagen de Redmine a través del cuadro de búsqueda. os aparecerán los resultados, y entre ellos cabe destacar dos, redmine official, que es la imagen que vamos a usar para este  tutorial y redmine bitnami, que os la recomiendo  al final del tutorial para empezar a curiosear más allá.

Buscamos la imagen de Redmine con el buscador en DockerHub
Buscamos la imagen de Redmine con el buscador

Pulsamos el botón CREATE de la imagen redmine official y veremos cómo empieza a descargarse y arranca de Docker.

Imagen de como aparece agregada la imagen de Redmine a nuestro Kitematic.
Imagen de como aparece agregada la imagen de Redmine a nuestro Kitematic.

Una vez arrancado el Docker, en la parte superior aparecerá la etiqueta verde RUNNING. Podemos comprobar que está funcionando nuestro  Redmine accediendo a la interfaz web a través de la opción WEB PREVIEW en la parte  derecha de la interfaz, en el icono que es un  cuadrado con  una flecha, justo al lado de los ajustes.

Arrancamos el contenedor usando la imagen como base mediante la acción START de Kitematic
Arrancamos el contenedor usando la imagen como base mediante la acción START de Kitematic

Nos aparecerá la pantalla principal de Redmine para que empecemos a configurarlo. Podemos  entrar con admin/admin.

Usamos la opción WEB PREVIEW de Kitematic para acceder a la URL de Redmine a través del navegador.
Usamos la opción WEB PREVIEW de Kitematic para acceder a la URL de Redmine a través del navegador.

3.5 Descargar el plugin Agile

Antes incluso de empezar a configurar nada, vamos a instalar el plugin que nos permitirá usar redmine en modo ágil. Accedemos a https://www.redmineup.com/pages/plugins/agile y pulsamos Download now

RedmineUp Agile plugin
RedmineUp Agile plugin para descargar

Entre las opciones seleccionamos Light (Free), nos aparecerá un popup para introducir nuestro email y que nos llegue el enlace de descarga.

Redmine Agile plugin precios
Redmine Agile plugin precios
Redmine Agile Plugin solicitud de email para descarga
Redmine Agile Plugin solicitud de email para descargar

Esta versión nos ofrecerá la funcionalidad mínima, los Agile boards y la Burn Down Chart.

3.6 Instalar el plugin Agile

Una vez descargado el archivo redmine_agile.zip vamos a la carpeta de descargas y descomprimimos el fichero por el método que prefiráis, en mi caso doble clic en el .zip desde la interfaz gráfica. Se nos creará un directorio redmine_agile que tendremos que mover a la carpeta de plugins de nuestro contenedor.

Para ello vamos a necesitar abrir nuestro Terminal y movernos a la carpeta de descargas, habitualmente: /Users/vuestrousuario/Downloads

Usaremos el comando docker cp. para poder copiar la carpeta a nuestro contenedor:

Podemos comprobar que la instalación ha sido correcta arrancando Redmine y comprobando que está activa la opción de configuración Agile en el menú de Administración.

También podemos verificar que se ha copiado arrancando el terminar de nuestro Docker a través de Kitematic. Al arrancar el Docker en la parte superior aparecerá un nuevo botón EXEC, lo pulsamos y nos lanzará el terminal con el que trabajar directamente en el Docker.

NOTA: Alguna instalación de Kitematic esto nos lleva al terminal local y no al del Docker. Para lanzar manualmente el del docker correspondiente ejecutamos docker exec -it mnombredeldocker sh lo que abrirá el terminal con el que operar sobre nuestro contenedor. En nuestro caso será docker exec -it redmine sh. 

Gracias a mi compañera Anaís por este aporte, ya que probando el tutorial ha encontrado esta excepción.

Una vez en nuestro contenedor. Navegamos a la  ruta /usr/src/redmine , accedemos al directorio de plugins con cd plugins y listamos con ls para comprobar que se ha copiado el plugin.

Directorio de plugins de Redmine en el Docker vacío
Directorio de plugins de Redmine en el Docker vacío
Directorio de plugins de Redmine en el Docker tras copiar el plugin
Directorio de plugins de Redmine en el Docker tras copiar el plugin

Ahora vamos al directorio raíz de Redmine (será aquel que contenga el archivo config.ru),  en mi caso /usr/src/redmine Y desde este directorio instalamos sus dependencias. Ejecutamos:

Redmine agile, instalación de las dependencias (gems)
Redmine agile, instalación de las dependencias (gems)

En caso de que os falle la ejecución del comando, podéis instalar Bundler antes que es el responsable de gestionar las dependencias, lo hacemos con:

Instalación de bundler por comando para gestionar las dependencias.
Instalación de bundler por comando para gestionar las dependencias.

A continuación migramos las tablas del plugin con el comando:

Y por último reiniciamos la aplicacióin de Redmine con: touch tmp/restart.tx

3.7 Configurar el almacenamiento de archivos adjuntos

Para que tengamos persistencia de los ficheros  que subimos a nuestro Redmine, tenemos  que configurar un volumen local en nuestra máquina de forma, que al «tirar abajo» nuestro contenedor no se borren.

Para ello en Kitematic, en la parte superior derecha vamos a la pestaña Settings y la opción Volumes. Veremos que por defecto la imagen está configurada para persistir el directorio /usr/src/redmine/files que es el lugar donde se almacenarán los ficheros que  subamos a nuestro redmine.

Kitematic configurar persistencia con volumes
Kitematic configurar persistencia con volumes

Lo que haremos será mapear un directorio local de la máquina física en la que esté corriendo el docker para que los cambios se mantengan. Pulsamos el botón CHANGE, y añadimos la ruta del directorio local, en mi caso, dentro del usuario …/Documents/docker_redmine

Volumen local de persistencia configurado en Kitematic
Volumen local de persistencia configurado en Kitematic

Y con esto ya estamos preparados para empezar a usar nuestro Redmine.

Para probar que funciona correctamente podemos simplemente ir Redmine, abrir la wiki ya cargar un archivo.

OJO!! Durante la elaboración del tutorial han cambiado las versiones tanto de Redmine (4.0.3 a la 4.0.4) como del plugin (1.4.10 a 1.4.12), lo que ha provocado que se desalinearan las versiones originales con las que empecé el tutorial. La versión 1.4.10 del plugin no es compatible con la 4.0.4 de Redmine. Yo tenía el plugin en local y estaba lanzando un docker con la nueva  versión de redmine de Dockerhub, lo que hacía que fallasen las dependencias y me devolviese constantemente un error rake aborted! Os recomiendo siempre que comprobéis las versiones.

Si tenéis algún problema durante la instalación, os recomiendo echar un vistazo a esta página de la documentación oficial donde aparecen los errores más comunes.

4. Conclusiones

Esto solo es el principio, solo está pensado para familiarizarse un poco con Docker a través de la herramienta visual Kitematic y poder hacer algunas pruebas con la herramienta sin tener que realizar una configuración pesada.

Para poder usar Kitematic sobre Docker de una forma intensiva, es necesario pensar en montar una base de datos externa más allá del SQLite que trae embebido Redmine. Esto podemos hacerlo también en otro Docker y orquestarlo.

Si queréis probar esta configuración con una base de datos externa, os recomiendo utilizar como imagen de referencia la de Bitnami en lugar de esta que hemos usado aquí.

Dejar respuesta

Please enter your comment!
Please enter your name here