Dockerizar tu aplicación de Node.js es una excelente manera de asegurar que se ejecute de manera consistente en cualquier entorno. En este artículo, te mostraré cómo crear un Dockerfile, construir una imagen y ejecutar un contenedor para tu proyecto Node.js.
Paso 1: Configurar el proyecto de Node.js
Comencemos creando una aplicación básica de Node.js.
Archivo: server.js
const express = require('express');
const app = express();
const port = 3000;
app.get('/', (req, res) => {
res.send('¡Hola, mundo desde Docker!');
});
app.listen(port, () => {
console.log(`Servidor escuchando en http://localhost:${port}`);
});
Asegúrate de tener un archivo package.json
con las dependencias necesarias:
npm init -y
npm install express
Paso 2: Crear un Dockerfile
El Dockerfile
es un archivo que define cómo construir la imagen de tu contenedor.
Archivo: Dockerfile
# Utilizar una imagen base de Node.js
FROM node:16-alpine
# Crear un directorio de trabajo
WORKDIR /app
# Copiar los archivos de la aplicación al contenedor
COPY package*.json ./
COPY server.js ./
# Instalar dependencias
RUN npm install
# Exponer el puerto de la aplicación
EXPOSE 3000
# Comando para ejecutar la aplicación
CMD ["node", "server.js"]
Paso 3: Crear el archivo .dockerignore
Para evitar copiar archivos innecesarios al contenedor, crea un archivo .dockerignore
:
Archivo: .dockerignore
node_modules
npm-debug.log
Paso 4: Construir la imagen Docker
Usa el siguiente comando para construir la imagen:
docker build -t nodejs-app .
Paso 5: Ejecutar el contenedor
Inicia un contenedor con la imagen que acabas de crear:
docker run -p 3000:3000 nodejs-app
Abre tu navegador y accede a http://localhost:3000
. ¡Deberías ver el mensaje "¡Hola, mundo desde Docker!"! 🎉
Paso 6: Opcional - Publicar la imagen en Docker Hub
Si deseas compartir tu imagen, primero inicia sesión en Docker Hub:
docker login
Luego etiqueta tu imagen y publícala:
docker tag nodejs-app tu-usuario/nodejs-app
docker push tu-usuario/nodejs-app
Conclusión
Dockerizar una aplicación de Node.js es fácil y útil para garantizar la portabilidad de tu código. Este es solo el comienzo: puedes agregar herramientas como docker-compose
o crear configuraciones más avanzadas.
Espero que este tutorial te haya sido útil. Si tienes dudas, ¡deja un comentario! 😊
Top comments (0)