{"id":73026,"date":"2023-09-13T10:32:25","date_gmt":"2023-09-13T09:32:25","guid":{"rendered":"https:\/\/kinsta.com\/it\/?p=73026&#038;preview=true&#038;preview_id=73026"},"modified":"2023-09-19T11:12:27","modified_gmt":"2023-09-19T10:12:27","slug":"containerizzare-next-js","status":"publish","type":"post","link":"https:\/\/kinsta.com\/it\/blog\/containerizzare-next-js\/","title":{"rendered":"Come containerizzare un&#8217;applicazione Next.js e distribuirla su Kinsta"},"content":{"rendered":"<p>In questo articolo spiegheremo come containerizzare un&#8217;applicazione <a href=\"https:\/\/kinsta.com\/it\/blog\/next-js\/\">Next.js<\/a> con un <strong>Dockerfile<\/strong> per un deployment personalizzabile. In alternativa, \u00e8 sempre possibile <a href=\"https:\/\/kinsta.com\/it\/blog\/portfolio-next-js\/#deploy-your-portfolio-to-kinsta\">distribuire un&#8217;applicazione Next.js su Kinsta utilizzando il deployment automatico<\/a>.<\/p>\n<p>Con <a href=\"https:\/\/www.docker.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">Docker<\/a>, possiamo impacchettare un&#8217;applicazione, il suo ambiente e le sue dipendenze in un container isolato. Un container consiste in un&#8217;applicazione in esecuzione in una versione ridotta di Linux. Un&#8217;immagine Docker \u00e8 il progetto di un container e il container \u00e8 un&#8217;istanza in esecuzione di un&#8217;immagine.<\/p>\n<p>Per containerizzare un&#8217;applicazione, utilizziamo un metodo dichiarativo tramite un <strong>Dockerfile<\/strong>. Docker legge ed esegue gli script definiti in questo file per costruire e distribuire l&#8217;applicazione.<\/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>Il nostro esperto in materia <a href=\"https:\/\/kinsta.com\/blog\/author\/aminchoroomi\/\">Amin Choroomi<\/a>, uno sviluppatore software di Kinsta, ha creato la codebase e descritto i passaggi di questo tutorial.<\/p>\n<\/aside>\n\n<h2>Vantaggi della containerizzazione di un&#8217;applicazione<\/h2>\n<p>La containerizzazione di un&#8217;applicazione offre numerosi vantaggi, tra cui portabilit\u00e0, stabilit\u00e0, scalabilit\u00e0, sicurezza e prestazioni. Distribuendo un&#8217;applicazione su Kinsta con un <strong>Dockerfile<\/strong>, se ne sfruttano anche le possibilit\u00e0 di personalizzazione.<\/p>\n<h3>Portabilit\u00e0<\/h3>\n<p><a href=\"https:\/\/kinsta.com\/it\/blog\/cosa-e-docker\/\">Docker<\/a> incapsula tutto ci\u00f2 di cui un&#8217;applicazione ha bisogno per funzionare, consentendo di passare facilmente da un ambiente all&#8217;altro. L&#8217;applicazione pu\u00f2 essere eseguita in locale, su un computer con un sistema operativo diverso o in ambienti di staging e di produzione. In tutti i casi, Docker genera l&#8217;applicazione con gli stessi componenti, e ci\u00f2 rende pi\u00f9 semplici la scrittura del codice, il test e la distribuzione.<\/p>\n<h3>Scalabilit\u00e0<\/h3>\n<p>Con Docker \u00e8 possibile eseguire diverse istanze dello stesso container su server diversi. Gli orchestratori di container gestiscono l&#8217;aumento del traffico senza influire sulle prestazioni dell&#8217;applicazione.<\/p>\n<h3>Stabilit\u00e0<\/h3>\n<p>Se un&#8217;applicazione viene eseguita in un container isolato, si avranno risultati sempre prevedibili spostando il codice tra i sistemi di sviluppo, test e produzione. Dato che un container contiene le stesse versioni delle librerie e dei pacchetti necessari, riduce al minimo il rischio di bug dovuti alle diverse revisioni delle dipendenze.<\/p>\n<p>Inoltre, quando un&#8217;applicazione viene distribuita su un server di produzione, Docker la tiene isolata dalle altre applicazioni, riducendo al minimo il rischio di essere colpiti dai picchi di traffico di queste ultime.<\/p>\n<h3>Sicurezza<\/h3>\n<p>I container Docker offrono un ambiente pi\u00f9 sicuro per i carichi di lavoro rispetto ai modelli tradizionali. Dato che suddividono le applicazioni in componenti molto pi\u00f9 piccoli e non accoppiati, ognuno isolato dall&#8217;altro, la superficie di attacco \u00e8 notevolmente ridotta. I container Docker riducono la possibilit\u00e0 che gli hacker possano sfruttare i sistemi informatici e rendono pi\u00f9 difficile la diffusione di una violazione in caso di attacco. Approfondiamo l&#8217;argomento in quest&#8217;articolo: <a href=\"https:\/\/kinsta.com\/it\/blog\/sicurezza-docker\/\">Le best practice di sicurezza per i container Docker<\/a>.<\/p>\n<h3>Prestazioni<\/h3>\n<p>I container non contengono un intero sistema operativo come le macchine virtuali e i server tradizionali. Per questo hanno un ingombro notevolmente ridotto e sono pi\u00f9 veloci da costruire e avviare.<\/p>\n<h3>Distribuzione personalizzata<\/h3>\n<p>Su Kinsta \u00e8 possibile distribuire automaticamente le applicazioni utilizzando Buildpacks e Nixpacks. Ma se, in base alla codebase dell&#8217;applicazione, il processo di build viene attivato automaticamente, non resta molto spazio per le personalizzazioni. Se si effettua il deploy su Kinsta con un <strong>Dockerfile<\/strong>, si pu\u00f2 configurare con precisione il modo in cui si vuole costruire e distribuire un&#8217;applicazione.<\/p>\n<h2>Requisiti<\/h2>\n<p>Per distribuire un&#8217;applicazione <a href=\"https:\/\/nextjs.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">Next.js<\/a> con Docker, occorre quanto segue:<\/p>\n<ul>\n<li><a href=\"https:\/\/nodejs.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">Node.js<\/a> e <a href=\"https:\/\/www.npmjs.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">npm<\/a>.<\/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>) in esecuzione sul computer.<\/li>\n<\/ul>\n<aside role=\"note\" class=\"wp-block-kinsta-notice is-style-info\">\n            <h3>Info<\/h3>\n        <p>Per questo tutorial si presuppone una conoscenza di base di Next.js e Docker.<\/p>\n<\/aside>\n\n<h2>Una semplice applicazione Next.js<\/h2>\n<p>Se si parte da un&#8217;applicazione esistente, si pu\u00f2 saltare questo passaggio. Se invece si sta iniziando da zero, bisogna creare una nuova applicazione Next.js:<\/p>\n<ol start=\"1\">\n<li>Aprire il terminale e installare <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>Spostarsi nella directory in cui si vuole installare l&#8217;applicazione e create una nuova applicazione Next.js:<\/li>\n<\/ol>\n<pre><code class=\"language-bash\">npx create-next-app@latest new-app<\/code><\/pre>\n<p>Next chieder\u00e0 di specificare una serie di opzioni per la configurazione dell&#8217;applicazione. Per questo tutorial, baster\u00e0 accettare i valori predefiniti.<\/p>\n<ol start=\"3\">\n<li>Per vedere l&#8217;anteprima della nuova applicazione, spostarsi nella cartella <strong>new-app<\/strong> ed eseguire questo comando:<\/li>\n<\/ol>\n<pre><code class=\"language-bash\">npm run dev<\/code><\/pre>\n<p>Come riferimento, abbiamo seguito questo metodo per creare un&#8217;<a href=\"https:\/\/github.com\/VirtuaCreative\/kinsta-nextjs-docker\" target=\"_blank\" rel=\"noopener noreferrer\">applicazione di esempio<\/a>.<\/p>\n<h2>Containerizzare un&#8217;applicazione Next.js con un Dockerfile<\/h2>\n<p>Per containerizzare un&#8217;applicazione Next.js e distribuirla con Docker, si crei un <strong>Dockerfile<\/strong> nella directory principale dell&#8217;applicazione.<\/p>\n<h3>Fase di build<\/h3>\n<p>Nel Dockerfile, si inizia con la fase di <code>build<\/code>:<\/p>\n<ol start=\"1\">\n<li>Si pu\u00f2 utilizzare l&#8217;ultima immagine ufficiale stabile di Node.js Alpine come immagine di base per la fase di <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>Copiare i file <strong>package.json<\/strong> e <strong>package-lock.json<\/strong> nel container:<\/li>\n<\/ol>\n<pre><code class=\"language-bash\">COPY package*.json .\/<\/code><\/pre>\n<ol start=\"3\">\n<li>Installare le dipendenze dell&#8217;applicazione con:<\/li>\n<\/ol>\n<pre><code class=\"language-bash\">RUN npm ci<\/code><\/pre>\n<ol start=\"4\">\n<li>Copiare il resto del codice dell&#8217;applicazione nel container con:<\/li>\n<\/ol>\n<pre><code class=\"language-bash\">COPY . .<\/code><\/pre>\n<ol start=\"5\">\n<li>Eseguire la build l&#8217;applicazione:<\/li>\n<\/ol>\n<pre><code class=\"language-bash\">RUN npm run build<\/code><\/pre>\n<h3>Fase di runtime<\/h3>\n<p>Si passa poi alla fase di <code>runtime<\/code>:<\/p>\n<ol start=\"1\">\n<li>Si pu\u00f2 utilizzare l&#8217;ultima immagine ufficiale stabile di Node.js Alpine come immagine di base per la fase di <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>Impostare la directory di lavoro su <code>\/app<\/code>:<\/li>\n<\/ol>\n<pre><code class=\"language-bash\">WORKDIR \/app<\/code><\/pre>\n<ol start=\"3\">\n<li>Copiare i file <strong>package.json<\/strong> e <strong>package-lock.json<\/strong> nel container:<\/li>\n<\/ol>\n<pre><code class=\"language-bash\">COPY package*.json .\/<\/code><\/pre>\n<ol start=\"4\">\n<li>Installare solo le dipendenze di produzione:<\/li>\n<\/ol>\n<pre><code class=\"language-bash\">RUN npm ci --only=production<\/code><\/pre>\n<ol start=\"5\">\n<li>Copiare l&#8217;applicazione generata dalla fase di <code>build<\/code> alla fase di <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>Copiare la cartella public dalla fase di <code>build<\/code> alla fase di <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>Esporre la porta 3000:<\/li>\n<\/ol>\n<pre><code class=\"language-bash\">EXPOSE 3000<\/code><\/pre>\n<ol start=\"8\">\n<li>Eseguire il contenitore come utente senza privilegi:<\/li>\n<\/ol>\n<pre><code class=\"language-bash\">USER node<\/code><\/pre>\n<ol start=\"9\">\n<li>Avviare l&#8217;applicazione Next.js:<\/li>\n<\/ol>\n<pre><code class=\"language-bash\">CMD [\"npm\", \"start\"]<\/code><\/pre>\n<p>Otterremo il seguente <strong>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>Distribuire l&#8217;applicazione in locale con Docker<\/h2>\n<p>Sebbene sia possibile visualizzare l&#8217;anteprima dell&#8217;applicazione con <code>run npm dev<\/code>, consigliamo di eseguirla in locale con Docker per imitare l&#8217;ambiente di produzione e per testare e visualizzare l&#8217;anteprima di eventuali modifiche apportate al <strong>Dockerfile<\/strong> dell&#8217;applicazione.<\/p>\n<p>Per visualizzare l&#8217;anteprima dell&#8217;applicazione:<\/p>\n<ol start=\"1\">\n<li>Eseguire la build dell&#8217;applicazione 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>Eseguire il container per visualizzare l&#8217;anteprima dell&#8217;applicazione:<\/li>\n<\/ol>\n<pre><code class=\"language-bash\">docker run -p 3000:3000 next-docker<\/code><\/pre>\n<ol start=\"3\">\n<li>Nel browser, aprire <code>http:\/\/localhost:3000<\/code>.<\/li>\n<\/ol>\n<h2>Distribuire un&#8217;applicazione Next.js containerizzata su Kinsta<\/h2>\n<p>Per distribuire l&#8217;applicazione su Kinsta con un <strong>Dockerfile<\/strong> si possono seguire questi passaggi.<\/p>\n<ol start=\"1\">\n<li>Utilizzare un repository Git (su GitHub, GitLab o Bitbucket) per l&#8217;hosting della base di codice dell&#8217;applicazione.<\/li>\n<li>Accedere all&#8217;account MyKinsta o <a href=\"https:\/\/kinsta.com\/it\/registrazione\/\">crearne uno nuovo<\/a> per accedere al cruscotto.<\/li>\n<li>Fare clic su <strong>Aggiungi servizio<\/strong> e selezionare <strong>Applicazione<\/strong>.<\/li>\n<li>Selezionare il provider Git, il repository e il branch da cui si vuole effettuare il deploy.<\/li>\n<li>Selezionare la casella <strong>Distribuzione automatica su commit<\/strong> se si desidera distribuire l&#8217;applicazione a ogni push del repo.<\/li>\n<li>Selezionare il data center pi\u00f9 vicino al proprio pubblico e fare clic su <strong>Continua<\/strong>.<\/li>\n<li>Scegliere l&#8217;ambiente di build e selezionare <strong>Usa un Dockerfile per installare l&#8217;immagine del container<\/strong>.<\/li>\n<li>Se il Dockerfile non si trova nella root del repo, scegliere <strong>Contesto<\/strong> per indicarne il percorso e fare clic su <strong>Continua<\/strong>.<\/li>\n<li>\u00c8 possibile lasciare vuota la voce <strong>Comando Start<\/strong>. Kinsta usa <code>npm start<\/code> per avviare l&#8217;applicazione.<\/li>\n<li>Selezionare la dimensione del pod e il numero di istanze pi\u00f9 adatto all&#8217;applicazione e fare clic su <strong>Continua<\/strong>.<\/li>\n<li>Inserire i dati della carta di credito e fare clic su <strong>Crea applicazione<\/strong>.<\/li>\n<\/ol>\n<p>L&#8217;applicazione \u00e8 pronta per la distribuzione. Se \u00e8 stata selezionata la casella <strong>Distribuzione automatica su commit<\/strong> al punto 5, Kinsta avvier\u00e0 automaticamente la distribuzione.<\/p>\n<h2>Riepilogo<\/h2>\n<p>In questo articolo abbiamo descritto alcuni vantaggi di Docker rispetto ai modelli tradizionali; abbiamo spiegato come creare un <strong>Dockerfile<\/strong> per un&#8217;applicazione Next.js e come costruirla e distribuirla con <a href=\"https:\/\/kinsta.com\/it\/argomenti\/docker\/\">Docker<\/a> in locale e poi distribuirla su Kinsta.<\/p>\n<p><a href=\"https:\/\/sevalla.com\/application-hosting\/\">L\u2019Hosting di Applicazioni<\/a> di Kinsta rende pi\u00f9 semplice ed efficiente il lavoro di sviluppo.<\/p>\n<p>Caratteristiche come le applicazioni containerizzate su infrastruttura GCP in esecuzione su macchine C2 con 27 data center, l&#8217;integrazione premium di Cloudflare per offrire un CDN ad alte prestazioni che serve il sito da 300 Points of Presence, la protezione DDoS del firewall di livello enterprise, l&#8217;Edge Caching e il monitoraggio dell&#8217;attivit\u00e0 (con garanzia di uptime del 99%), assicurano che ogni applicazione venga eseguita in modo veloce e sicuro e che sia disponibile su internet senza problemi.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In questo articolo spiegheremo come containerizzare un&#8217;applicazione Next.js con un Dockerfile per un deployment personalizzabile. In alternativa, \u00e8 sempre possibile distribuire un&#8217;applicazione Next.js su Kinsta utilizzando &#8230;<\/p>\n","protected":false},"author":290,"featured_media":73027,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[],"topic":[25918,25847],"class_list":["post-73026","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","topic-framework-javascript","topic-tutorial-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>Come containerizzare un&#039;applicazione Next.js e distribuirla su Kinstaa<\/title>\n<meta name=\"description\" content=\"Costruisci e distribuisci applicazioni e impara a containerizzare un&#039;applicazione Next.js con un file Docker per una distribuzione personalizzabile.\" \/>\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\/it\/blog\/containerizzare-next-js\/\" \/>\n<meta property=\"og:locale\" content=\"it_IT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Come containerizzare un&#039;applicazione Next.js e distribuirla su Kinsta\" \/>\n<meta property=\"og:description\" content=\"Costruisci e distribuisci applicazioni e impara a containerizzare un&#039;applicazione Next.js con un file Docker per una distribuzione personalizzabile.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinsta.com\/it\/blog\/containerizzare-next-js\/\" \/>\n<meta property=\"og:site_name\" content=\"Kinsta\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/kinstaitalia\/\" \/>\n<meta property=\"article:published_time\" content=\"2023-09-13T09:32:25+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-09-19T10:12:27+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/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=\"Costruisci e distribuisci applicazioni e impara a containerizzare un&#039;applicazione Next.js con un file Docker per una distribuzione personalizzabile.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/09\/containerize-nextjs-app-and-deploy-to-kinsta.jpg\" \/>\n<meta name=\"twitter:creator\" content=\"@Kinsta_IT\" \/>\n<meta name=\"twitter:site\" content=\"@Kinsta_IT\" \/>\n<meta name=\"twitter:label1\" content=\"Scritto da\" \/>\n\t<meta name=\"twitter:data1\" content=\"Marcia Ramos\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo di lettura stimato\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minuti\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinsta.com\/it\/blog\/containerizzare-next-js\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/containerizzare-next-js\/\"},\"author\":{\"name\":\"Marcia Ramos\",\"@id\":\"https:\/\/kinsta.com\/it\/#\/schema\/person\/72bff0015d3fb3ba3d8a85494dc0b116\"},\"headline\":\"Come containerizzare un&#8217;applicazione Next.js e distribuirla su Kinsta\",\"datePublished\":\"2023-09-13T09:32:25+00:00\",\"dateModified\":\"2023-09-19T10:12:27+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/containerizzare-next-js\/\"},\"wordCount\":1282,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/it\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/containerizzare-next-js\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/09\/containerize-nextjs-app-and-deploy-to-kinsta.jpg\",\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kinsta.com\/it\/blog\/containerizzare-next-js\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinsta.com\/it\/blog\/containerizzare-next-js\/\",\"url\":\"https:\/\/kinsta.com\/it\/blog\/containerizzare-next-js\/\",\"name\":\"Come containerizzare un'applicazione Next.js e distribuirla su Kinstaa\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/it\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/containerizzare-next-js\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/containerizzare-next-js\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/09\/containerize-nextjs-app-and-deploy-to-kinsta.jpg\",\"datePublished\":\"2023-09-13T09:32:25+00:00\",\"dateModified\":\"2023-09-19T10:12:27+00:00\",\"description\":\"Costruisci e distribuisci applicazioni e impara a containerizzare un'applicazione Next.js con un file Docker per una distribuzione personalizzabile.\",\"breadcrumb\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/containerizzare-next-js\/#breadcrumb\"},\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinsta.com\/it\/blog\/containerizzare-next-js\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/kinsta.com\/it\/blog\/containerizzare-next-js\/#primaryimage\",\"url\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/09\/containerize-nextjs-app-and-deploy-to-kinsta.jpg\",\"contentUrl\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/09\/containerize-nextjs-app-and-deploy-to-kinsta.jpg\",\"width\":1460,\"height\":730},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinsta.com\/it\/blog\/containerizzare-next-js\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinsta.com\/it\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Framework JavaScript\",\"item\":\"https:\/\/kinsta.com\/it\/argomenti\/framework-javascript\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Come containerizzare un&#8217;applicazione Next.js e distribuirla su Kinsta\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kinsta.com\/it\/#website\",\"url\":\"https:\/\/kinsta.com\/it\/\",\"name\":\"Kinsta\u00ae\",\"description\":\"Soluzioni di hosting premium, veloci e sicure\",\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/it\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kinsta.com\/it\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"it-IT\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kinsta.com\/it\/#organization\",\"name\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/it\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/kinsta.com\/it\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/12\/kinsta-logo.jpeg\",\"contentUrl\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/12\/kinsta-logo.jpeg\",\"width\":500,\"height\":500,\"caption\":\"Kinsta\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/it\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/kinstaitalia\/\",\"https:\/\/x.com\/Kinsta_IT\",\"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\/it\/#\/schema\/person\/72bff0015d3fb3ba3d8a85494dc0b116\",\"name\":\"Marcia Ramos\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/kinsta.com\/it\/#\/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\/it\/blog\/author\/marciaramos\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Come containerizzare un'applicazione Next.js e distribuirla su Kinstaa","description":"Costruisci e distribuisci applicazioni e impara a containerizzare un'applicazione Next.js con un file Docker per una distribuzione personalizzabile.","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\/it\/blog\/containerizzare-next-js\/","og_locale":"it_IT","og_type":"article","og_title":"Come containerizzare un'applicazione Next.js e distribuirla su Kinsta","og_description":"Costruisci e distribuisci applicazioni e impara a containerizzare un'applicazione Next.js con un file Docker per una distribuzione personalizzabile.","og_url":"https:\/\/kinsta.com\/it\/blog\/containerizzare-next-js\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/kinstaitalia\/","article_published_time":"2023-09-13T09:32:25+00:00","article_modified_time":"2023-09-19T10:12:27+00:00","og_image":[{"width":1460,"height":730,"url":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/09\/containerize-nextjs-app-and-deploy-to-kinsta.jpg","type":"image\/jpeg"}],"author":"Marcia Ramos","twitter_card":"summary_large_image","twitter_description":"Costruisci e distribuisci applicazioni e impara a containerizzare un'applicazione Next.js con un file Docker per una distribuzione personalizzabile.","twitter_image":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/09\/containerize-nextjs-app-and-deploy-to-kinsta.jpg","twitter_creator":"@Kinsta_IT","twitter_site":"@Kinsta_IT","twitter_misc":{"Scritto da":"Marcia Ramos","Tempo di lettura stimato":"7 minuti"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinsta.com\/it\/blog\/containerizzare-next-js\/#article","isPartOf":{"@id":"https:\/\/kinsta.com\/it\/blog\/containerizzare-next-js\/"},"author":{"name":"Marcia Ramos","@id":"https:\/\/kinsta.com\/it\/#\/schema\/person\/72bff0015d3fb3ba3d8a85494dc0b116"},"headline":"Come containerizzare un&#8217;applicazione Next.js e distribuirla su Kinsta","datePublished":"2023-09-13T09:32:25+00:00","dateModified":"2023-09-19T10:12:27+00:00","mainEntityOfPage":{"@id":"https:\/\/kinsta.com\/it\/blog\/containerizzare-next-js\/"},"wordCount":1282,"commentCount":0,"publisher":{"@id":"https:\/\/kinsta.com\/it\/#organization"},"image":{"@id":"https:\/\/kinsta.com\/it\/blog\/containerizzare-next-js\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/09\/containerize-nextjs-app-and-deploy-to-kinsta.jpg","inLanguage":"it-IT","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kinsta.com\/it\/blog\/containerizzare-next-js\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kinsta.com\/it\/blog\/containerizzare-next-js\/","url":"https:\/\/kinsta.com\/it\/blog\/containerizzare-next-js\/","name":"Come containerizzare un'applicazione Next.js e distribuirla su Kinstaa","isPartOf":{"@id":"https:\/\/kinsta.com\/it\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinsta.com\/it\/blog\/containerizzare-next-js\/#primaryimage"},"image":{"@id":"https:\/\/kinsta.com\/it\/blog\/containerizzare-next-js\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/09\/containerize-nextjs-app-and-deploy-to-kinsta.jpg","datePublished":"2023-09-13T09:32:25+00:00","dateModified":"2023-09-19T10:12:27+00:00","description":"Costruisci e distribuisci applicazioni e impara a containerizzare un'applicazione Next.js con un file Docker per una distribuzione personalizzabile.","breadcrumb":{"@id":"https:\/\/kinsta.com\/it\/blog\/containerizzare-next-js\/#breadcrumb"},"inLanguage":"it-IT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinsta.com\/it\/blog\/containerizzare-next-js\/"]}]},{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/kinsta.com\/it\/blog\/containerizzare-next-js\/#primaryimage","url":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/09\/containerize-nextjs-app-and-deploy-to-kinsta.jpg","contentUrl":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/09\/containerize-nextjs-app-and-deploy-to-kinsta.jpg","width":1460,"height":730},{"@type":"BreadcrumbList","@id":"https:\/\/kinsta.com\/it\/blog\/containerizzare-next-js\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinsta.com\/it\/"},{"@type":"ListItem","position":2,"name":"Framework JavaScript","item":"https:\/\/kinsta.com\/it\/argomenti\/framework-javascript\/"},{"@type":"ListItem","position":3,"name":"Come containerizzare un&#8217;applicazione Next.js e distribuirla su Kinsta"}]},{"@type":"WebSite","@id":"https:\/\/kinsta.com\/it\/#website","url":"https:\/\/kinsta.com\/it\/","name":"Kinsta\u00ae","description":"Soluzioni di hosting premium, veloci e sicure","publisher":{"@id":"https:\/\/kinsta.com\/it\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kinsta.com\/it\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"it-IT"},{"@type":"Organization","@id":"https:\/\/kinsta.com\/it\/#organization","name":"Kinsta","url":"https:\/\/kinsta.com\/it\/","logo":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/kinsta.com\/it\/#\/schema\/logo\/image\/","url":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/12\/kinsta-logo.jpeg","contentUrl":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/12\/kinsta-logo.jpeg","width":500,"height":500,"caption":"Kinsta"},"image":{"@id":"https:\/\/kinsta.com\/it\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/kinstaitalia\/","https:\/\/x.com\/Kinsta_IT","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\/it\/#\/schema\/person\/72bff0015d3fb3ba3d8a85494dc0b116","name":"Marcia Ramos","image":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/kinsta.com\/it\/#\/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\/it\/blog\/author\/marciaramos\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/posts\/73026","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/users\/290"}],"replies":[{"embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/comments?post=73026"}],"version-history":[{"count":8,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/posts\/73026\/revisions"}],"predecessor-version":[{"id":73159,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/posts\/73026\/revisions\/73159"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/73026\/translations\/en"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/73026\/translations\/it"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/73026\/translations\/pt"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/73026\/translations\/fr"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/73026\/translations\/de"},{"embeddable":true,"hreflang":"ja","title":"Japanese","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/73026\/translations\/jp"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/73026\/translations\/es"},{"href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/73026\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/media\/73027"}],"wp:attachment":[{"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/media?parent=73026"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/tags?post=73026"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/topic?post=73026"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}