Cordova + Android con docker

Si, suena a chino, pero todos los que desarrollamos aplicaciones hibridas para móviles con cordova nos hemos encontrado con este problema tarde o temprano.. Las versiones son una pesadilla, la versión de node, de nmp, de cordova, de cada uno de los plugins… Y como estoy experimentando con docker para algunos de mis servicios pues quiero experimentar también a ver si puedo tener una versión de contenedor para compilar siempre sobre seguro… Estos son mis resultados:

docker pull beevelop/cordova:latest
docker run --name=cordova -v /home/espinosa/code:/mnt -it beevelop/cordova bash

Luego entro a mi proyecto y simplemente, compilo…

cordova platform add android
cordova build android

Y ya está…

Pero tiene algunos «problemillas» como que el usuario que se utiliza para la compilación es root… Y mientras no encuentre una manera de evitarlo (en el contenedor todo está preparado para hacerlo con root) lo que tengo que hacer es cambiar el propietario del directorio en el que estoy (en el host) después de realizar la compilación.

chmod -R espinosa:espinosa .

O, si lo hacemos desde dentro del contendor:

chmod -R 1000:1000 .

Estoy seguro de que puedo utilizar este sistema para automatizar las generaciones de los apk de las apps (ojala pudiera hacerlo igual en ios), pero todavía me faltan algunos detalles… Por cierto, una vez creado el docker, para volver a ejecutarlo solo hace falta escribir esto:

docker start -ai cordova