Contenedor Docker
Bien, ahora que ya tenemos nuestro aplicación creada, vamos a crear nuestro contenedor de Docker
Lo primero que tenemos que hacer es descargarnos Docker de su página oficial desde aquí.
Una vez instalado, creamos la lista de archivos que vamos a ignorar, para eso editaremos nuestro fichero .dockerignore
1 2 | node_modules .git |
Una vez ignorados los ficheros que usamos en nuestra máquina, procedemos a crear nuestro Dockerfile. Podéis consultar la documentación aquí
1 2 3 4 5 6 7 8 9 10 11 | FROM node:6.9 EXPOSE 3000 WORKDIR /app ADD package.json /app/ RUN npm install ADD . /app CMD ["node", "server"] |
Cuando ya tenemos establecida la configuración para nuestro contenedor, lo construimos:
1 | docker build -t bytecode . |
Bien, ya tenemos montado nuestro contenedor con la configuración que hemos establecido. Ahora solo falta poder lanzarlo, para ello ejecutamos el siguiente comando.
1 2 3 4 5 | // Con este comando, Docker retiene la consola docker run -p 3000:3000 bytecode // Con la opción -d no nos retiene la consola docker run -d -p 3000:3000 bytecode |
En este punto, estamos diciendo a Docker, que queremos que ejecute la máquina con la etiqueta que establecimos en el paso anterior ‘bytecode’ y que haga un mapeo de nuestro puerto 3000 con el puerto 3000 de la máquina del contenedor.
Ahora si volvemos al navegador y vamos a localhost:3000 veremos nuestra app ejecutándose.
Podemos ver todos los contenedores que tenemos corriendo actualmente con la orden
1 | docker ps |
Para poder cerrar el contenedor que hemos abierto, ejecutamos el siguiente comando
1 | docker kill 243e9e52367d |
Una muy buena cosa que tiene Docker, es que si hacemos algún cambio en nuestro aplicación, en nuestro caso modificamos el index.html, cuando volvemos a construir el contenedor, no tiene que volver a construir todo, simplemente construye el contenedor desde la etiqueta donde se ha establecido el cambio. Podemos ver como en cada Step, usa la cache, menos en el Step 6/7 que es donde Docker reconoce que ha habido un cambio.
Ejecutar los Test
Ya tenemos el contenedor funcionando y la aplicación corriendo correctamente, pero necesitamos estar seguros que la aplicación funciona correctamente, para ello, debemos ejecutar el test escrito anteriormente. Para ello, ejecutaremos junto con el comando para levantar el contenedor, la llamada al test.
1 | docker run bytecode npm test |
Listo, ya tenemos nuestra aplicación en el contenedor y pasando el test!