Cómo crear un contenedor Docker para su aplicación NodeJs
Contenedor Docker – Si alguna vez se preguntó cómo Dockerize y ejecutar su aplicación NodeJs como un contenedor, y nunca lo hizo, entonces llegó al lugar correcto.
Lo que estará construyendo
Una aplicación NodeJs que se ejecuta en un contenedor Docker en su máquina local.
Paso 1
Inicializar una aplicación NodeJs con express
1. cd en la carpeta que desea hacer su aplicación NodeJs
2. Ejecute npm init -y
Esto generará un archivo package.json para usted
3. Ahora a instalar tipo Express 👇🏻
npm i express
Y presione la tecla Enter o Return
Express ahora se instalará como una dependencia en su proyecto
4. Ahora cree un archivo index.js en el directorio de su aplicación con el siguiente código
const express = require('express'); const app = express(); app.get('/', (req,res) => { res.json({ "message": "server running" }) }) app.listen(80, () => { console.log("server running"); })
5. Su aplicación express de NodeJs ya está lista. Para ejecutar la aplicación Abra Terminal y cd en el directorio de su proyecto y escriba
node index.js
Si ve un mensaje de servidor en ejecución impreso en la terminal, tada su aplicación de nodo ahora está lista
Paso 2
Hora de dockerizarlo
En el directorio de su proyecto, cree un archivo llamado Dockerfile sin ninguna extensión y guárdelo
Copie 👇🏻 estas líneas en Dockerfile
FROM node:alpine WORKDIR /var/www COPY package.json . RUN npm install COPY . . EXPOSE 80 CMD ["node", "index.js"]
FROM node:alpine
esta es la primera línea de cualquier Dockerfile y especifica la imagen base que está utilizando para crear su imagen acoplable, en nuestro caso estamos usandonode:alpine
WORKDIR /var/www
esta línea especifica nuestro directorio de trabajo actual. En nuestro caso, queremos que nuestro proyecto esté en/var/www
, por lo que estamos diciendo docker que hace que nuestro directorio de trabajo actual sea/var/www
COPY package.json .
Un paso que se explica por sí mismo, simplemente estamos copiando nuestro archivo package.json a nuestro directorio de trabajo actual
RUN npm install
Este paso instala todas las dependencias de nuestro proyecto en el contenedor dockerCOPY . .
En el paso anterior, copiamos solo package.json para instalar solo las dependencias. Ahora que tenemos todas las dependencias instaladas, estamos copiando todos los archivos de nuestro proyecto en el contenedorEXPOSE 80
Este paso expone el puerto 80 de nuestro contenedor para que el mundo exterior accedaCMD [“node”, “index.js”]
Y finalmente estamos ejecutando la aplicación ejecutando el comando node
Cree la imagen de Docker
Ahora estamos un paso más cerca de dockerizar nuestra aplicación NodeJs.
Ya tenemos todo listo. El último paso que queda es construir nuestra imagen de Docker desde Dockerfile y ejecutarla.
Para construir la imagen, abra su Terminal y cd en la carpeta del proyecto y ejecuta docker build -t image
.
Docker ahora comenzará a construir su imagen desde Dockerfile verá una pantalla -como la siguiente- una vez que termine de construirse.
¡FINALMENTE! Es hora de ejecutar nuestro contenedor Docker
Ahora ejecute el comando docker run -p 80:80 image
y verá el mensaje server running
Ahora vaya a su navegador web y escriba localhost
y presione Enter o Return
Felicidades, su proyecto NodeJs ahora está dockerizado 🎉🥳