🚀 Desplegar Docker en Vercel
Hasta hace poco, Vercel estaba principalmente orientado al despliegue de aplicaciones basadas en frameworks compatibles con su plataforma.
Ahora incorpora una nueva funcionalidad muy esperada:
Ya es posible desplegar aplicaciones dockerizadas directamente en Vercel, incluso utilizando su plan gratuito.
Esto permite ejecutar prácticamente cualquier aplicación empaquetada en un contenedor Docker sin necesidad de utilizar otros proveedores.
🎉 Docker llega a Vercel
La nueva funcionalidad permite subir proyectos que incluyan un Dockerfile y ejecutarlos directamente en la infraestructura de Vercel.
Durante la clase se utiliza como ejemplo una pequeña API escrita en Go para demostrar el funcionamiento del despliegue.
📄 El Dockerfile para Vercel
El ejemplo utiliza un archivo específico llamado:
Dockerfile.vercel
Aunque Vercel utiliza este nombre por defecto para detectar el despliegue, también es posible utilizar otros nombres de Dockerfile siempre que se indiquen correctamente durante la construcción de la imagen.
🏗️ Construcción multi-stage
La aplicación utiliza un Dockerfile multi-stage, una práctica muy recomendable para generar imágenes ligeras.
El proceso consiste en:
- Utilizar una imagen de Go para compilar la aplicación.
- Generar un único ejecutable.
- Copiar únicamente ese binario a una imagen Alpine.
- Ejecutar la aplicación sin incluir el compilador ni dependencias innecesarias.
Gracias a este enfoque se obtienen imágenes más pequeñas, rápidas y seguras.
💻 Instalar la CLI de Vercel
Antes de desplegar el proyecto es necesario instalar la línea de comandos de Vercel.
Durante la clase se muestra la instalación mediante:
npm install -g vercel
También es posible utilizar otros gestores de paquetes como PNPM si se prefiere.
🔐 Iniciar sesión
Una vez instalada la CLI, el siguiente paso consiste en autenticarse:
vercel login
Después del inicio de sesión ya es posible desplegar cualquier proyecto asociado a la cuenta.
🚀 Desplegar el proyecto
Con el Dockerfile preparado y la CLI instalada, el despliegue resulta muy sencillo.
Basta con situarse en la carpeta del proyecto y ejecutar:
vercel
La plataforma detectará automáticamente el Dockerfile, construirá la imagen y realizará el despliegue.
🔍 Inspeccionar el proceso de construcción
Durante el despliegue Vercel muestra todos los pasos ejecutados:
- Descarga de la imagen base.
- Copia de archivos.
- Ejecución de comandos del Dockerfile.
- Compilación.
- Publicación de la imagen.
- Despliegue final.
Esto facilita enormemente la depuración cuando ocurre algún error.
🧪 Probar el mismo contenedor en local
Una ventaja importante es que el mismo Dockerfile utilizado para producción puede ejecutarse localmente.
Para ello se construye la imagen indicando el archivo correspondiente:
docker build -f Dockerfile.vercel -t vercel .
Después basta con iniciar el contenedor:
docker run --rm -p 8080:80 vercel
De esta forma es posible comprobar el funcionamiento antes de realizar el despliegue definitivo.
📂 Puedes tener varios Dockerfiles
No existe la obligación de tener un único Dockerfile.
Es perfectamente válido utilizar nombres como:
- Dockerfile.vercel
- Dockerfile.server
- Dockerfile.database
Al construir la imagen simplemente se indica cuál debe utilizar Docker mediante el parámetro -f.
📌 Ideas clave de esta clase
Quédate con estos conceptos:
- Vercel ya permite desplegar aplicaciones Docker.
- El soporte está disponible incluso en el plan gratuito.
- Es recomendable utilizar Dockerfiles multi-stage.
- La CLI de Vercel simplifica completamente el proceso de despliegue.
- El mismo Dockerfile sirve tanto para producción como para desarrollo local.
- Es posible mantener varios Dockerfiles dentro del mismo proyecto.
- Docker Build permite seleccionar cuál utilizar mediante
-f.
🚀 Lo siguiente
Ahora que sabes desplegar un contenedor Docker en Vercel, ya puedes publicar aplicaciones desarrolladas en cualquier lenguaje siempre que dispongas de un Dockerfile correctamente configurado.
Esto abre la puerta a desplegar APIs, servicios y aplicaciones que anteriormente requerían otras plataformas de hosting.
💡 Tip: Antes de desplegar, ejecuta siempre el mismo Dockerfile en local. Si funciona correctamente en tu máquina, será mucho más sencillo detectar cualquier problema que aparezca durante el despliegue en Vercel.