Últimamente estoy viendo bastante potencia en usar Docker como contenedor de mis herramientas para el desarrollo. Tras dockerizar asciidoctor, y con el taller de introducción a Angular de la UA en pocas semanas, he creado una imagen con el CLI de Angular para facilitar el setup de los entornos en caso de llevarse uno su propio equipo.

Para utilizarlo, yo siempre recomiendo hacer un alias para que parezca que estamos lanzando un comando local y así sea todo más transparente:

$ alias ng='docker run -it --rm -w /opt -v $(pwd):/opt -p 4200:4200 alexsuch/angular-cli:1.0.0-beta.22-ubuntu ng'

Yo tengo todos mis alias en un fichero llamado .aliases, al que se referencia desde el .bash_profile

Una vez tenemos el alias, el uso es exactamente el mismo que se indica en la documentación del CLI. Veamos algunos ejemplos de comandos, con y sin alias:

Crear nuevo proyecto

$ ng new my-project-name
$ docker run -it --rm -w /opt -v $(pwd):/opt \ 
         alexsuch/angular-cli:1.0.0-beta.22-ubuntu \ 
         ng new my-project-name

Crear un componente

$ ng g component sample-component
$ docker run -it --rm -w /opt -v $(pwd):/opt \ 
         alexsuch/angular-cli:1.0.0-beta.22-ubuntu \
         ng g component sample-component

Levantar el servidor de desarrollo

$ ng serve --host 0.0.0.0
$ docker run -it --rm -w /opt -v $(pwd):/opt \ 
         alexsuch/angular-cli:1.0.0-beta.22-ubuntu \ 
         ng serve --host 0.0.0.0

¿Cómo lo ves? ¿Usarías docker como contenedor de tus herramientas de desarrollo o lo harías más “a la antigua usanza”?

Anuncios