{"id":70130,"date":"2023-09-13T11:31:07","date_gmt":"2023-09-13T09:31:07","guid":{"rendered":"https:\/\/kinsta.com\/es\/?p=70130&#038;preview=true&#038;preview_id=70130"},"modified":"2023-09-19T16:05:44","modified_gmt":"2023-09-19T14:05:44","slug":"contenerizar-next-js","status":"publish","type":"post","link":"https:\/\/kinsta.com\/es\/blog\/contenerizar-next-js\/","title":{"rendered":"C\u00f3mo Contenerizar una Aplicaci\u00f3n Next.js y Desplegarla en Kinsta"},"content":{"rendered":"<p>Este art\u00edculo explica c\u00f3mo contenerizar una aplicaci\u00f3n <a href=\"https:\/\/kinsta.com\/es\/blog\/next-js\/\">Next.js<\/a> con un <strong>Dockerfile<\/strong>\u00a0para un despliegue personalizable. Alternativamente, puedes desplegar una <a href=\"https:\/\/kinsta.com\/es\/blog\/portafolio-next-js\/#deploy-your-portfolio-to-kinsta\">aplicaci\u00f3n Next.js en Kinsta utilizando el despliegue autom\u00e1tico<\/a>.<\/p>\n<p>Con <a href=\"https:\/\/www.docker.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">Docker<\/a>, empaquetamos una aplicaci\u00f3n, su entorno y sus dependencias en un contenedor aislado. Un contenedor consiste en una aplicaci\u00f3n que se ejecuta en una versi\u00f3n reducida de Linux. Una imagen Docker es la plantilla para un contenedor, y el contenedor es una instancia en ejecuci\u00f3n de una imagen.<\/p>\n<p>Para contenerizar una aplicaci\u00f3n, utilizamos un m\u00e9todo declarativo a trav\u00e9s de un<strong>\u00a0Dockerfile<\/strong>. Docker lee y ejecuta los scripts definidos en este archivo para construir y desplegar tu aplicaci\u00f3n.<\/p>\n<div><\/div><kinsta-auto-toc heading=\"Table of Contents\" exclude=\"last\" list-style=\"arrow\" selector=\"h2\" count-number=\"-1\"><\/kinsta-auto-toc>\n<aside role=\"note\" class=\"wp-block-kinsta-notice is-style-info\">\n            <h3>Info<\/h3>\n        <p>Nuestro experto en la materia (SME) <a href=\"https:\/\/kinsta.com\/blog\/author\/aminchoroomi\/\">Amin Choroomi<\/a>, desarrollador de software en Kinsta, cre\u00f3 el c\u00f3digo base y los pasos para este tutorial.<\/p>\n<\/aside>\n\n<h2>Ventajas de Contenerizar tu Aplicaci\u00f3n<\/h2>\n<p>La contenedorizaci\u00f3n de una aplicaci\u00f3n tiene muchas ventajas, como la portabilidad, la estabilidad, la escalabilidad, la seguridad y el rendimiento. Al desplegar una aplicaci\u00f3n en Kinsta con un <strong>Dockerfile<\/strong>, tambi\u00e9n aprovechas su personalizaci\u00f3n.<\/p>\n<h3>Portabilidad<\/h3>\n<p><a href=\"https:\/\/kinsta.com\/es\/blog\/que-es-docker\/\">Docker<\/a> encapsula todo lo que una aplicaci\u00f3n necesita para ejecutarse, lo que permite conmutarlas f\u00e1cilmente entre entornos. Tanto si la ejecutas localmente como en un ordenador con un sistema operativo diferente, o en entornos staging y en producci\u00f3n, Docker construye la aplicaci\u00f3n con los mismos componentes, lo que facilita su programaci\u00f3n, prueba y despliegue.<\/p>\n<h3>Escalabilidad<\/h3>\n<p>Con Docker, puedes ejecutar varias instancias de tu contenedor en diferentes servidores. Los orquestadores de contenedores gestionan el aumento de tr\u00e1fico sin afectar al rendimiento de tu aplicaci\u00f3n.<\/p>\n<h3>Estabilidad<\/h3>\n<p>Al ejecutar tu aplicaci\u00f3n en un contenedor aislado, obtienes resultados predecibles al mover el c\u00f3digo entre los sistemas de desarrollo, prueba y producci\u00f3n. Dado que tu contenedor contiene versiones exactas de las bibliotecas y paquetes necesarios, minimiza el riesgo de errores debidos a diferentes revisiones de dependencias.<\/p>\n<p>Adem\u00e1s, cuando tu aplicaci\u00f3n se despliega en un servidor de producci\u00f3n, Docker la mantiene aislada de otras aplicaciones, minimizando el riesgo de que se vea afectada por sus picos de tr\u00e1fico.<\/p>\n<h3>Seguridad<\/h3>\n<p>Los contenedores Docker proporcionan un entorno m\u00e1s seguro para tus cargas de trabajo que los modelos tradicionales. Como descomponen tus aplicaciones en componentes mucho m\u00e1s peque\u00f1os y d\u00e9bilmente acoplados, cada uno aislado del otro, se reduce significativamente la superficie de ataque. Los contenedores Docker disminuyen la posibilidad de que los hackers exploten tus sistemas inform\u00e1ticos y dificultan la propagaci\u00f3n de una brecha en caso de ataque. M\u00e1s informaci\u00f3n en este art\u00edculo:<a href=\"https:\/\/kinsta.com\/es\/blog\/seguridad-docker\/\"> 9 Buenas Pr\u00e1cticas de Seguridad para Contenedores Docker<\/a>.<\/p>\n<h3>Rendimiento<\/h3>\n<p>Los contenedores no contienen un sistema operativo completo como las m\u00e1quinas virtuales y los servidores tradicionales. Por ello, los contenedores ocupan mucho menos espacio y son m\u00e1s r\u00e1pidos de construir y poner en marcha.<\/p>\n<h3>Despliegue Personalizado<\/h3>\n<p>Con Kinsta, puedes desplegar tus aplicaciones autom\u00e1ticamente utilizando Buildpacks y Nixpacks. Pero cuando el proceso de construcci\u00f3n se activa autom\u00e1ticamente bas\u00e1ndose en el c\u00f3digo base de tu aplicaci\u00f3n, no tienes mucho espacio para personalizaciones. Si despliegas en Kinsta con un <strong>Dockerfile<\/strong>, puedes configurar con precisi\u00f3n c\u00f3mo quieres construir y desplegar tu aplicaci\u00f3n.<\/p>\n<h2>Requisitos<\/h2>\n<p>Para desplegar una aplicaci\u00f3n <a href=\"https:\/\/nextjs.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">Next.js<\/a> con Docker, necesitas:<\/p>\n<ul>\n<li><a href=\"https:\/\/nodejs.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">Node.js<\/a> y <a href=\"https:\/\/www.npmjs.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">npm<\/a> instalados.<\/li>\n<li><a href=\"https:\/\/www.docker.com\/products\/docker-desktop\/\" target=\"_blank\" rel=\"noopener noreferrer\">Docker Desktop<\/a> (o <a href=\"https:\/\/docs.docker.com\/engine\/\" target=\"_blank\" rel=\"noopener noreferrer\">Docker Engine<\/a>) instalado y funcionando en tu ordenador.<\/li>\n<\/ul>\n<aside role=\"note\" class=\"wp-block-kinsta-notice is-style-info\">\n            <h3>Info<\/h3>\n        <p>Para este tutorial, asumimos que tienes conocimientos b\u00e1sicos de Next.js y Docker.<\/p>\n<\/aside>\n\n<h2>Empezar con una Aplicaci\u00f3n Next.js<\/h2>\n<p>Si partes de una aplicaci\u00f3n existente, puedes saltarte este paso. Si empiezas desde cero, crea una nueva aplicaci\u00f3n Next.js:<\/p>\n<ol start=\"1\">\n<li>Abre tu terminal e instala <code>create-next-app<\/code>:<\/li>\n<\/ol>\n<pre><code class=\"language-bash\">npm i -g create-next-app@latest<\/code><\/pre>\n<ol start=\"2\">\n<li>Navega hasta el directorio donde quieras instalarlo y crea una nueva aplicaci\u00f3n Next.js en su propio directorio:<\/li>\n<\/ol>\n<pre><code class=\"language-bash\">npx create-next-app@latest new-app<\/code><\/pre>\n<p>Next te pide que especifiques una serie de opciones de configuraci\u00f3n para tu nueva aplicaci\u00f3n. Para este tutorial, puedes simplemente aceptar los valores predeterminados sugeridos.<\/p>\n<ol start=\"3\">\n<li>Para previsualizar tu nueva aplicaci\u00f3n, navega hasta el directorio <strong>new-app<\/strong> y ejec\u00fatala:<\/li>\n<\/ol>\n<pre><code class=\"language-bash\">npm run dev<\/code><\/pre>\n<p>Como referencia, hemos creado una <a href=\"https:\/\/github.com\/VirtuaCreative\/kinsta-nextjs-docker\">aplicaci\u00f3n de ejemplo<\/a> utilizando este m\u00e9todo.<\/p>\n<h2>Contenedorizar una Aplicaci\u00f3n Next.js con un Dockerfile<\/h2>\n<p>Para contenerizar tu aplicaci\u00f3n Next.js y desplegarla con Docker, crea un <strong>Dockerfile<\/strong> en el directorio root de tu aplicaci\u00f3n.<\/p>\n<h3>Etapa Build (de Construcci\u00f3n)<\/h3>\n<p>En tu Dockerfile, empieza creando la etapa <code>build<\/code> de la app para construir tu aplicaci\u00f3n:<\/p>\n<ol start=\"1\">\n<li>Utiliza la \u00faltima imagen estable oficial de Node.js alpine como imagen base para la etapa <code>build<\/code>:<\/li>\n<\/ol>\n<pre><code class=\"language-bash\">FROM node:18-alpine AS build\nWORKDIR \/app<\/code><\/pre>\n<ol start=\"2\">\n<li>Copia los archivos <strong>package.json<\/strong> y <strong>package-lock.json<\/strong> en el contenedor:<\/li>\n<\/ol>\n<pre><code class=\"language-bash\">COPY package*.json .\/<\/code><\/pre>\n<ol start=\"3\">\n<li>Instala las dependencias de la app con:<\/li>\n<\/ol>\n<pre><code class=\"language-bash\">RUN npm ci<\/code><\/pre>\n<ol start=\"4\">\n<li>Copia el resto del c\u00f3digo de la aplicaci\u00f3n al contenedor con:<\/li>\n<\/ol>\n<pre><code class=\"language-bash\">COPY . .<\/code><\/pre>\n<ol start=\"5\">\n<li>Construye la aplicaci\u00f3n:<\/li>\n<\/ol>\n<pre><code class=\"language-bash\">RUN npm run build<\/code><\/pre>\n<h3>Etapa Runtime (de Ejecuci\u00f3n)<\/h3>\n<p>Crea la etapa <code>runtime<\/code> para desplegar tu aplicaci\u00f3n:<\/p>\n<ol start=\"1\">\n<li>Utiliza la \u00faltima imagen estable oficial de Node.js alpine como imagen base para la etapa <code>runtime<\/code>:<\/li>\n<\/ol>\n<pre><code class=\"language-bash\">FROM node:18-alpine AS runtime<\/code><\/pre>\n<ol start=\"2\">\n<li>Establece el directorio de trabajo en <code>\/app<\/code>:<\/li>\n<\/ol>\n<pre><code class=\"language-bash\">WORKDIR \/app<\/code><\/pre>\n<ol start=\"3\">\n<li>Copia los archivos <strong>package.json<\/strong> y <strong>package-lock.json<\/strong> en el contenedor:<\/li>\n<\/ol>\n<pre><code class=\"language-bash\">COPY package*.json .\/<\/code><\/pre>\n<ol start=\"4\">\n<li>Instala s\u00f3lo las dependencias de producci\u00f3n:<\/li>\n<\/ol>\n<pre><code class=\"language-bash\">RUN npm ci --only=production<\/code><\/pre>\n<ol start=\"5\">\n<li>Copia la aplicaci\u00f3n creada de la etapa <code>build<\/code> a la etapa <code>runtime<\/code>:<\/li>\n<\/ol>\n<pre><code class=\"language-bash\">COPY --from=build \/app\/.next .\/.next<\/code><\/pre>\n<ol start=\"6\">\n<li>Copia la carpeta public de la etapa <code>build<\/code> a la etapa <code>runtime<\/code>:<\/li>\n<\/ol>\n<pre><code class=\"language-bash\">COPY --from=build \/app\/public .\/public<\/code><\/pre>\n<ol start=\"7\">\n<li>Exp\u00f3n el puerto 3000:<\/li>\n<\/ol>\n<pre><code class=\"language-bash\">EXPOSE 3000<\/code><\/pre>\n<ol start=\"8\">\n<li>Ejecuta el contenedor como usuario sin privilegios:<\/li>\n<\/ol>\n<pre><code class=\"language-bash\">USER node<\/code><\/pre>\n<ol start=\"9\">\n<li>Inicia la aplicaci\u00f3n Next.js:<\/li>\n<\/ol>\n<pre><code class=\"language-bash\">CMD [\"npm\", \"start\"]<\/code><\/pre>\n<p>Obtendremos el siguiente <strong>archivo Dockerfile<\/strong>:<\/p>\n<pre><code class=\"language-bash\">FROM node:18-alpine AS build\n\nWORKDIR \/app\nCOPY package*.json .\/\nRUN npm ci\nCOPY . .\nRUN npm run build\n\nFROM node:18-alpine AS runtime\n\nWORKDIR \/app\nCOPY package*.json .\/\nRUN npm ci --only=production\nCOPY --from=build \/app\/.next .\/.next\nCOPY --from=build \/app\/public .\/public\n\nEXPOSE 3000\nUSER node\nCMD [\"npm\", \"start\"]<\/code><\/pre>\n<h2>Despliega la Aplicaci\u00f3n Localmente con Docker<\/h2>\n<p>Aunque puedes previsualizar tu aplicaci\u00f3n con <code>run npm dev<\/code>, ejec\u00fatala localmente con Docker para imitar el entorno de producci\u00f3n y para probar y previsualizar cualquier cambio que hagas en el <strong>Dockerfile<\/strong> de tu aplicaci\u00f3n.<\/p>\n<p>Para previsualizar tu aplicaci\u00f3n<\/p>\n<ol start=\"1\">\n<li>Construye la aplicaci\u00f3n con <code>docker build<\/code>:<\/li>\n<\/ol>\n<pre><code class=\"language-bash\">docker build -t next-docker .<\/code><\/pre>\n<ol start=\"2\">\n<li>Ejecuta el contenedor para previsualizar tu aplicaci\u00f3n:<\/li>\n<\/ol>\n<pre><code class=\"language-bash\">docker run -p 3000:3000 next-docker<\/code><\/pre>\n<ol start=\"3\">\n<li>En tu navegador, abre <code>http:\/\/localhost:3000<\/code>.<\/li>\n<\/ol>\n<h2>Despliega la Aplicaci\u00f3n Next.js en Contenedores en Kinsta<\/h2>\n<p>Sigue los pasos que se indican a continuaci\u00f3n para desplegar tu aplicaci\u00f3n en Kinsta utilizando su <strong>archivo Dockerfile<\/strong>.<\/p>\n<ol start=\"1\">\n<li>Aloja el c\u00f3digo base de tu aplicaci\u00f3n en un repositorio Git (en GitHub, GitLab o Bitbucket).<\/li>\n<li>Inicia sesi\u00f3n en tu cuenta MyKinsta o <a href=\"https:\/\/kinsta.com\/es\/suscripcion\/\">crea una nueva<\/a> para acceder a tu panel de control.<\/li>\n<li>Haz clic en <strong>A\u00f1adir servicio<\/strong> y selecciona <strong>Aplicaci\u00f3n<\/strong>.<\/li>\n<li>Selecciona tu proveedor Git, repositorio y la rama desde la que quieres desplegar.<\/li>\n<li>Marca la casilla de <strong>Despliegue autom\u00e1tico al hacer commit<\/strong> si deseas desplegar tu aplicaci\u00f3n con cada push a tu repositorio.<\/li>\n<li>Selecciona el centro de datos m\u00e1s cercano a tu audiencia y haz clic en <strong>Continuar<\/strong>.<\/li>\n<li>Elige tu entorno de construcci\u00f3n y selecciona <strong>Usar Dockerfile para configurar la imagen del contenedor<\/strong>.<\/li>\n<li>Si tu Dockerfile no est\u00e1 en la ra\u00edz de tu repositorio, utiliza <strong>Contexto<\/strong> para indicar su ruta y haz clic en <strong>Continuar<\/strong>.<\/li>\n<li>Puedes dejar vac\u00eda la entrada <strong>Comando de inicio<\/strong>. Kinsta utiliza <code>npm start<\/code> para iniciar tu aplicaci\u00f3n.<\/li>\n<li>Selecciona el tama\u00f1o del pod y el n\u00famero de instancias m\u00e1s adecuados para tu aplicaci\u00f3n y haz clic en <strong>Continuar<\/strong>.<\/li>\n<li>Rellena los datos de tu tarjeta de cr\u00e9dito y haz clic en <strong>Crear aplicaci\u00f3n<\/strong>.<\/li>\n<\/ol>\n<p>Tu aplicaci\u00f3n est\u00e1 lista para el despliegue. Si marcaste la casilla <strong>Despliegue autom\u00e1tico al hacer commit<\/strong> en el paso 5, Kinsta iniciar\u00e1 el despliegue autom\u00e1ticamente.<\/p>\n<h2>Resumen<\/h2>\n<p>En este art\u00edculo, hemos discutido algunas ventajas del uso de Docker sobre los modelos tradicionales; hemos explicado c\u00f3mo crear un <strong>Dockerfile<\/strong> para una aplicaci\u00f3n Next.js, construirla y desplegarla con <a href=\"https:\/\/kinsta.com\/es\/secciones\/docker\/\">Docker<\/a> localmente, y desplegarla en Kinsta.<\/p>\n<p>El <a href=\"https:\/\/sevalla.com\/application-hosting\/\">alojamiento de aplicaciones<\/a> de Kinsta hace que tu flujo de trabajo de desarrollo sea sencillo y eficiente.<\/p>\n<p>Funciones como aplicaciones en contenedores en infraestructura GCP que se ejecutan en m\u00e1quinas C2 con 27 centros de datos disponibles, integraci\u00f3n premium con Cloudflare para una CDN de alto rendimiento que sirve tu sitio desde 300 Puntos de Presencia, protecci\u00f3n DDoS con cortafuegos de nivel empresarial, Edge Caching y supervisi\u00f3n del tiempo de actividad (con una garant\u00eda de tiempo de actividad del 99%), garantizan que tu aplicaci\u00f3n se ejecute de forma r\u00e1pida, segura y est\u00e9 disponible de forma fiable en Internet.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Este art\u00edculo explica c\u00f3mo contenerizar una aplicaci\u00f3n Next.js con un Dockerfile\u00a0para un despliegue personalizable. Alternativamente, puedes desplegar una aplicaci\u00f3n Next.js en Kinsta utilizando el despliegue autom\u00e1tico. &#8230;<\/p>\n","protected":false},"author":290,"featured_media":70131,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[],"topic":[1296,1297],"class_list":["post-70130","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","topic-frameworks-javascript","topic-tutoriales-javascript"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v24.6 (Yoast SEO v24.6) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>C\u00f3mo Contenerizar una Aplicaci\u00f3n Next.js y Desplegarla en Kinsta<\/title>\n<meta name=\"description\" content=\"Construye y despliega aplicaciones y aprende a contenerizar una aplicaci\u00f3n Next.js con un Dockerfile para un despliegue personalizable.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kinsta.com\/es\/blog\/contenerizar-next-js\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"C\u00f3mo Contenerizar una Aplicaci\u00f3n Next.js y Desplegarla en Kinsta\" \/>\n<meta property=\"og:description\" content=\"Construye y despliega aplicaciones y aprende a contenerizar una aplicaci\u00f3n Next.js con un Dockerfile para un despliegue personalizable.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinsta.com\/es\/blog\/contenerizar-next-js\/\" \/>\n<meta property=\"og:site_name\" content=\"Kinsta\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/kinsta.es\/\" \/>\n<meta property=\"article:published_time\" content=\"2023-09-13T09:31:07+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-09-19T14:05:44+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/09\/containerize-nextjs-app-and-deploy-to-kinsta.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1460\" \/>\n\t<meta property=\"og:image:height\" content=\"730\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Marcia Ramos\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:description\" content=\"Construye y despliega aplicaciones y aprende a contenerizar una aplicaci\u00f3n Next.js con un Dockerfile para un despliegue personalizable.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/09\/containerize-nextjs-app-and-deploy-to-kinsta.jpg\" \/>\n<meta name=\"twitter:creator\" content=\"@Kinsta_ES\" \/>\n<meta name=\"twitter:site\" content=\"@Kinsta_ES\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Marcia Ramos\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinsta.com\/es\/blog\/contenerizar-next-js\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/es\/blog\/contenerizar-next-js\/\"},\"author\":{\"name\":\"Marcia Ramos\",\"@id\":\"https:\/\/kinsta.com\/es\/#\/schema\/person\/72bff0015d3fb3ba3d8a85494dc0b116\"},\"headline\":\"C\u00f3mo Contenerizar una Aplicaci\u00f3n Next.js y Desplegarla en Kinsta\",\"datePublished\":\"2023-09-13T09:31:07+00:00\",\"dateModified\":\"2023-09-19T14:05:44+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinsta.com\/es\/blog\/contenerizar-next-js\/\"},\"wordCount\":1383,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/es\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/es\/blog\/contenerizar-next-js\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/09\/containerize-nextjs-app-and-deploy-to-kinsta-1.jpg\",\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kinsta.com\/es\/blog\/contenerizar-next-js\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinsta.com\/es\/blog\/contenerizar-next-js\/\",\"url\":\"https:\/\/kinsta.com\/es\/blog\/contenerizar-next-js\/\",\"name\":\"C\u00f3mo Contenerizar una Aplicaci\u00f3n Next.js y Desplegarla en Kinsta\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/es\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinsta.com\/es\/blog\/contenerizar-next-js\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/es\/blog\/contenerizar-next-js\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/09\/containerize-nextjs-app-and-deploy-to-kinsta-1.jpg\",\"datePublished\":\"2023-09-13T09:31:07+00:00\",\"dateModified\":\"2023-09-19T14:05:44+00:00\",\"description\":\"Construye y despliega aplicaciones y aprende a contenerizar una aplicaci\u00f3n Next.js con un Dockerfile para un despliegue personalizable.\",\"breadcrumb\":{\"@id\":\"https:\/\/kinsta.com\/es\/blog\/contenerizar-next-js\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinsta.com\/es\/blog\/contenerizar-next-js\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/kinsta.com\/es\/blog\/contenerizar-next-js\/#primaryimage\",\"url\":\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/09\/containerize-nextjs-app-and-deploy-to-kinsta-1.jpg\",\"contentUrl\":\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/09\/containerize-nextjs-app-and-deploy-to-kinsta-1.jpg\",\"width\":1460,\"height\":730},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinsta.com\/es\/blog\/contenerizar-next-js\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinsta.com\/es\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Frameworks JavaScript\",\"item\":\"https:\/\/kinsta.com\/es\/secciones\/frameworks-javascript\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"C\u00f3mo Contenerizar una Aplicaci\u00f3n Next.js y Desplegarla en Kinsta\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kinsta.com\/es\/#website\",\"url\":\"https:\/\/kinsta.com\/es\/\",\"name\":\"Kinsta\u00ae\",\"description\":\"Soluciones de alojamiento premium, r\u00e1pidas y seguras\",\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/es\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kinsta.com\/es\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kinsta.com\/es\/#organization\",\"name\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/es\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/kinsta.com\/es\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/12\/kinsta-logo.jpeg\",\"contentUrl\":\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/12\/kinsta-logo.jpeg\",\"width\":500,\"height\":500,\"caption\":\"Kinsta\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/es\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/kinsta.es\/\",\"https:\/\/x.com\/Kinsta_ES\",\"https:\/\/www.instagram.com\/kinstahosting\/\",\"https:\/\/www.linkedin.com\/company\/kinsta\/\",\"https:\/\/www.pinterest.com\/kinstahosting\/\",\"https:\/\/www.youtube.com\/c\/Kinsta\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/kinsta.com\/es\/#\/schema\/person\/72bff0015d3fb3ba3d8a85494dc0b116\",\"name\":\"Marcia Ramos\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/kinsta.com\/es\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/0d680db24858fdf61a7e7ce3c1a160f5?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/0d680db24858fdf61a7e7ce3c1a160f5?s=96&d=mm&r=g\",\"caption\":\"Marcia Ramos\"},\"description\":\"I'm the Editorial Team Lead at Kinsta. I'm a open source enthusiast and I love coding. With more than 10 years of technical writing and editing for the tech industry, I love collaborating with people to create clear and concise pieces of content and improve workflows.\",\"sameAs\":[\"https:\/\/www.linkedin.com\/in\/marciadiasramos\/\"],\"honorificSuffix\":\"B.Sc.\",\"gender\":\"Female\",\"knowsLanguage\":[\"English\",\"Portuguese\"],\"jobTitle\":\"Editorial Team Lead\",\"worksFor\":\"Kinsta Inc.\",\"url\":\"https:\/\/kinsta.com\/es\/blog\/author\/marciaramos\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"C\u00f3mo Contenerizar una Aplicaci\u00f3n Next.js y Desplegarla en Kinsta","description":"Construye y despliega aplicaciones y aprende a contenerizar una aplicaci\u00f3n Next.js con un Dockerfile para un despliegue personalizable.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/kinsta.com\/es\/blog\/contenerizar-next-js\/","og_locale":"es_ES","og_type":"article","og_title":"C\u00f3mo Contenerizar una Aplicaci\u00f3n Next.js y Desplegarla en Kinsta","og_description":"Construye y despliega aplicaciones y aprende a contenerizar una aplicaci\u00f3n Next.js con un Dockerfile para un despliegue personalizable.","og_url":"https:\/\/kinsta.com\/es\/blog\/contenerizar-next-js\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/kinsta.es\/","article_published_time":"2023-09-13T09:31:07+00:00","article_modified_time":"2023-09-19T14:05:44+00:00","og_image":[{"width":1460,"height":730,"url":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/09\/containerize-nextjs-app-and-deploy-to-kinsta.jpg","type":"image\/jpeg"}],"author":"Marcia Ramos","twitter_card":"summary_large_image","twitter_description":"Construye y despliega aplicaciones y aprende a contenerizar una aplicaci\u00f3n Next.js con un Dockerfile para un despliegue personalizable.","twitter_image":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/09\/containerize-nextjs-app-and-deploy-to-kinsta.jpg","twitter_creator":"@Kinsta_ES","twitter_site":"@Kinsta_ES","twitter_misc":{"Escrito por":"Marcia Ramos","Tiempo de lectura":"6 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinsta.com\/es\/blog\/contenerizar-next-js\/#article","isPartOf":{"@id":"https:\/\/kinsta.com\/es\/blog\/contenerizar-next-js\/"},"author":{"name":"Marcia Ramos","@id":"https:\/\/kinsta.com\/es\/#\/schema\/person\/72bff0015d3fb3ba3d8a85494dc0b116"},"headline":"C\u00f3mo Contenerizar una Aplicaci\u00f3n Next.js y Desplegarla en Kinsta","datePublished":"2023-09-13T09:31:07+00:00","dateModified":"2023-09-19T14:05:44+00:00","mainEntityOfPage":{"@id":"https:\/\/kinsta.com\/es\/blog\/contenerizar-next-js\/"},"wordCount":1383,"commentCount":0,"publisher":{"@id":"https:\/\/kinsta.com\/es\/#organization"},"image":{"@id":"https:\/\/kinsta.com\/es\/blog\/contenerizar-next-js\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/09\/containerize-nextjs-app-and-deploy-to-kinsta-1.jpg","inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kinsta.com\/es\/blog\/contenerizar-next-js\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kinsta.com\/es\/blog\/contenerizar-next-js\/","url":"https:\/\/kinsta.com\/es\/blog\/contenerizar-next-js\/","name":"C\u00f3mo Contenerizar una Aplicaci\u00f3n Next.js y Desplegarla en Kinsta","isPartOf":{"@id":"https:\/\/kinsta.com\/es\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinsta.com\/es\/blog\/contenerizar-next-js\/#primaryimage"},"image":{"@id":"https:\/\/kinsta.com\/es\/blog\/contenerizar-next-js\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/09\/containerize-nextjs-app-and-deploy-to-kinsta-1.jpg","datePublished":"2023-09-13T09:31:07+00:00","dateModified":"2023-09-19T14:05:44+00:00","description":"Construye y despliega aplicaciones y aprende a contenerizar una aplicaci\u00f3n Next.js con un Dockerfile para un despliegue personalizable.","breadcrumb":{"@id":"https:\/\/kinsta.com\/es\/blog\/contenerizar-next-js\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinsta.com\/es\/blog\/contenerizar-next-js\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/kinsta.com\/es\/blog\/contenerizar-next-js\/#primaryimage","url":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/09\/containerize-nextjs-app-and-deploy-to-kinsta-1.jpg","contentUrl":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/09\/containerize-nextjs-app-and-deploy-to-kinsta-1.jpg","width":1460,"height":730},{"@type":"BreadcrumbList","@id":"https:\/\/kinsta.com\/es\/blog\/contenerizar-next-js\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinsta.com\/es\/"},{"@type":"ListItem","position":2,"name":"Frameworks JavaScript","item":"https:\/\/kinsta.com\/es\/secciones\/frameworks-javascript\/"},{"@type":"ListItem","position":3,"name":"C\u00f3mo Contenerizar una Aplicaci\u00f3n Next.js y Desplegarla en Kinsta"}]},{"@type":"WebSite","@id":"https:\/\/kinsta.com\/es\/#website","url":"https:\/\/kinsta.com\/es\/","name":"Kinsta\u00ae","description":"Soluciones de alojamiento premium, r\u00e1pidas y seguras","publisher":{"@id":"https:\/\/kinsta.com\/es\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kinsta.com\/es\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/kinsta.com\/es\/#organization","name":"Kinsta","url":"https:\/\/kinsta.com\/es\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/kinsta.com\/es\/#\/schema\/logo\/image\/","url":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/12\/kinsta-logo.jpeg","contentUrl":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/12\/kinsta-logo.jpeg","width":500,"height":500,"caption":"Kinsta"},"image":{"@id":"https:\/\/kinsta.com\/es\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/kinsta.es\/","https:\/\/x.com\/Kinsta_ES","https:\/\/www.instagram.com\/kinstahosting\/","https:\/\/www.linkedin.com\/company\/kinsta\/","https:\/\/www.pinterest.com\/kinstahosting\/","https:\/\/www.youtube.com\/c\/Kinsta"]},{"@type":"Person","@id":"https:\/\/kinsta.com\/es\/#\/schema\/person\/72bff0015d3fb3ba3d8a85494dc0b116","name":"Marcia Ramos","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/kinsta.com\/es\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/0d680db24858fdf61a7e7ce3c1a160f5?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/0d680db24858fdf61a7e7ce3c1a160f5?s=96&d=mm&r=g","caption":"Marcia Ramos"},"description":"I'm the Editorial Team Lead at Kinsta. I'm a open source enthusiast and I love coding. With more than 10 years of technical writing and editing for the tech industry, I love collaborating with people to create clear and concise pieces of content and improve workflows.","sameAs":["https:\/\/www.linkedin.com\/in\/marciadiasramos\/"],"honorificSuffix":"B.Sc.","gender":"Female","knowsLanguage":["English","Portuguese"],"jobTitle":"Editorial Team Lead","worksFor":"Kinsta Inc.","url":"https:\/\/kinsta.com\/es\/blog\/author\/marciaramos\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/posts\/70130","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/users\/290"}],"replies":[{"embeddable":true,"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/comments?post=70130"}],"version-history":[{"count":5,"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/posts\/70130\/revisions"}],"predecessor-version":[{"id":70161,"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/posts\/70130\/revisions\/70161"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/70130\/translations\/en"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/70130\/translations\/it"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/70130\/translations\/pt"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/70130\/translations\/fr"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/70130\/translations\/de"},{"embeddable":true,"hreflang":"ja","title":"Japanese","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/70130\/translations\/jp"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/70130\/translations\/es"},{"href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/70130\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/media\/70131"}],"wp:attachment":[{"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/media?parent=70130"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/tags?post=70130"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/topic?post=70130"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}