Sprachen- und Framework-Handbü...
Next.js im Container mit Back4App bereitstellen
24 min
back4app containers ist eine leistungsstarke plattform zum hosten von next js anwendungen mit der fähigkeit, dockerisierte next js apps automatisch bereitzustellen, können sie ihr projekt in einer skalierbaren und flexiblen umgebung mit leichtigkeit starten in diesem leitfaden führen wir sie durch den prozess der vorbereitung und bereitstellung ihrer next js anwendung auf back4app containers, wobei wir alles von einfachen projekten bis hin zu komplexeren setups abdecken wir beginnen mit den notwendigen vorbereitungen, gehen dann zur dockerisierung der anwendung über, testen sie lokal, pushen das projekt zu github, richten das projekt auf back4app containers ein, überwachen die bereitstellung und beheben häufige probleme wenn sie fragen oder kommentare haben, können sie gerne an der diskussion im #containers kanal in der back4app community auf slack teilnehmen sie können uns jederzeit auch unter community\@back4app com kontaktieren wenn sie jederzeit ein funktionierendes beispielprojekt für next js auf back4app containern überprüfen möchten, gehen sie zu https //github com/templates back4app/containers nextjs sample https //github com/templates back4app/containers nextjs sample 1 vorbereiten ihrer next js anwendung a projektstruktur überprüfen sie, ob ihre next js anwendung einer ordnungsgemäßen verzeichnisstruktur folgt, mit allen notwendigen dateien und ordnern, wie pages , public , components , und styles , die angemessen organisiert sind der haupteinstiegspunkt für ihre anwendung sollte die pages/index js oder pages/index jsx datei sein b abhängigkeiten überprüfen sie, ob alle erforderlichen abhängigkeiten in der package json datei aufgeführt sind, einschließlich ihrer korrekten versionen stellen sie sicher, dass sie alle abhängigkeiten mit npm install oder yarn install installiert haben, um eine package lock json oder yarn lock datei zu generieren c build prozess bei komplexeren projekten, die einen build prozess beinhalten, stellen sie sicher, dass ihre build skripte und konfigurationen (z b webpack, babel oder next js) korrekt eingerichtet sind sie sollten in der lage sein, den build prozess lokal ohne probleme auszuführen d umgebungsvariablen wenn ihre anwendung auf umgebungsvariablen angewiesen ist, stellen sie sicher, dass sie eine env datei mit den erforderlichen variablen definiert haben bei der bereitstellung in back4app containern müssen sie diese umgebungsvariablen in den bereitstellungseinstellungen konfigurieren e servereinrichtung (falls zutreffend) wenn ihre next js anwendung einen benutzerdefinierten server (z b express) enthält, stellen sie sicher, dass er korrekt eingerichtet und konfiguriert ist, um ihre next js anwendung bereitzustellen testen sie ihren server lokal, um sicherzustellen, dass er wie erwartet funktioniert f anwendungsoptimierung optimieren sie ihre next js anwendung, indem sie die bundle größen minimieren, code splitting verwenden und bewährte verfahren zur leistungsoptimierung umsetzen verwenden sie tools wie lighthouse, um ihre anwendung zu überprüfen und etwaige leistungs oder zugänglichkeitsprobleme zu beheben g browserübergreifende kompatibilität testen sie ihre anwendung in mehreren browsern und geräten, um eine ordnungsgemäße darstellung und funktionalität sicherzustellen sobald sie ihre next js anwendung gründlich überprüft und vorbereitet haben, können sie mit dem nächsten schritt fortfahren, der darin besteht, ein dockerfile für ihr projekt zu erstellen 2 dockerisierung die dockerisierung einer next js anwendung umfasst die erstellung eines dockerfiles im stammverzeichnis ihres projekts das dockerfile enthält anweisungen zum erstellen eines docker images ihrer anwendung, das dann in back4app containern bereitgestellt werden kann hier ist eine detaillierte erklärung, wie sie ein dockerfile für eine typische next js anwendung erstellen 1 erstellen sie eine neue datei mit dem namen dockerfile (ohne dateierweiterung) im stammverzeichnis ihrer next js anwendung 2 definieren sie das basis image beginnen sie das dockerfile, indem sie ein basis image mit dem from befehl angeben für eine typische next js anwendung sollte das basis image ein node js image sein, z b node 14 oder node 16 from node 14 3 setzen sie das arbeitsverzeichnis verwenden sie den workdir befehl, um das arbeitsverzeichnis für ihre anwendung innerhalb des docker containers festzulegen hier werden ihre anwendungsdateien gespeichert und ausgeführt workdir /app 4 kopieren sie package json und package lock json kopieren sie die dateien package json und package lock json von ihrem lokalen computer in den docker container mit dem copy befehl diese dateien sind erforderlich, um die abhängigkeiten ihrer anwendung zu installieren copy package json / 5 abhängigkeiten installieren verwenden sie den befehl run, um die abhängigkeiten ihrer anwendung aus der datei package json zu installieren dies geschieht normalerweise mit npm ci, das die genauen abhängigkeitsversionen installiert, die in der datei package lock json angegeben sind run npm ci 6 kopieren sie die restlichen projektdateien verwenden sie erneut den befehl copy, um die verbleibenden dateien und ordner von ihrem lokalen computer in den docker container zu kopieren copy 7 bauen sie die next js anwendung fügen sie einen run befehl hinzu, um ihre next js anwendung mit ihrem build skript zu erstellen, normalerweise npm run build dies erzeugt eine produktionsbereite version ihrer next js anwendung im next ordner run npm run build 8 konfigurieren sie den server sie benötigen einen server, um ihre erstellte next js anwendung bereitzustellen eine gängige wahl ist der integrierte next js server zuerst installieren sie ihn global im docker container mit dem befehl run run npm install g next 9 öffnen sie den serverport verwenden sie den befehl expose, um den port anzugeben, auf dem ihr server im docker container läuft zum beispiel können sie port 3000 verwenden expose 3000 10 starten sie den server verwenden sie den befehl cmd, um den befehl anzugeben, der den server startet, um ihre erstellte next js anwendung bereitzustellen mit dem integrierten next js server können sie das startskript und die portnummer angeben cmd \["next", "start", " p", "3000"] die vollständige dockerfile für eine typische next js anwendung sollte folgendermaßen aussehen from node 14 workdir /app copy package json / run npm ci copy run npm run build run npm install g next expose 3000 cmd \["next", "start", " p", "3000"] weitere dockerfile beispiele, die sie als referenz verwenden können beispiel 1 verwendung eines nginx servers wenn sie einen nginx server verwenden möchten, um ihre next js anwendung bereitzustellen, können sie eine mehrstufige dockerfile erstellen in diesem fall bauen sie zunächst die next js anwendung und kopieren dann die generierten dateien auf den nginx server \# stage 1 build the next js application from node 14 as builder workdir /app copy package json / run npm ci copy run npm run build \# stage 2 set up the nginx server from nginx\ stable alpine copy from=builder /app/ next /usr/share/nginx/html copy from=builder /app/public /usr/share/nginx/html/ next/static copy nginx conf /etc/nginx/conf d/default conf stellen sie sicher, dass sie eine geeignete nginx conf datei erstellen, um den nginx server ordnungsgemäß zu konfigurieren beispiel 2 verwendung eines benutzerdefinierten servers wenn sie einen benutzerdefinierten server für ihre next js anwendung eingerichtet haben, können sie die dockerfile entsprechend anpassen hier ist ein beispiel mit einer benutzerdefinierten server js datei from node 14 workdir /app copy package json / run npm ci copy run npm run build expose 3000 cmd \["node", "server js"] in diesem beispiel wird der benutzerdefinierte server mit dem node server js befehl gestartet, anstatt den next js server zu verwenden 3 bauen und ausführen des docker containers nachdem sie die dockerfile erstellt haben, können sie das docker image erstellen und einen container daraus ausführen verwenden sie die folgenden befehle, um den container zu erstellen und auszuführen docker build t your image name docker run p 3000 3000 your image name ersetzen sie "your image name" durch einen namen für ihr docker image sobald der container läuft, können sie ihre next js anwendung unter http //localhost 3000 http //localhost 3000 in ihrem webbrowser aufrufen 4 testen sie ihr projekt lokal bevor sie ihre next js anwendung auf back4app containern bereitstellen, ist es wichtig, sie lokal mit docker zu testen dies hilft sicherzustellen, dass ihre anwendung wie erwartet funktioniert und hilft ihnen, probleme vor der bereitstellung zu identifizieren und zu beheben bauen sie das docker image für ihre next js anwendung navigieren sie in ihrem terminal zum stammverzeichnis ihres projekts und führen sie den folgenden befehl aus, wobei sie your app name durch den namen ihrer anwendung ersetzen docker build t your app name führen sie den docker container lokal aus führen sie als nächstes den folgenden befehl aus, um den docker container lokal zu starten dieser befehl mappt den freigegebenen port des containers (z b 3000) auf einen port auf ihrem lokalen computer (z b 3000) docker run p 3000 3000 your app name testen sie ihre anwendung öffnen sie einen webbrowser und navigieren sie zu http //localhost 3000 http //localhost 3000 , um ihre next js anwendung anzuzeigen stellen sie sicher, dass alles wie erwartet funktioniert wenn sie auf probleme stoßen, beheben sie diese, bevor sie mit dem nächsten schritt fortfahren 5 pushen sie ihr projekt zu github erstellen sie eine gitignore datei im stammverzeichnis ihres projekts, um unnötige oder sensible dateien aus ihrem repository auszuschließen (z b node modules , env , build , usw ) initialisieren sie ein git repository, committen sie ihre projektdateien und pushen sie sie in ein remote repository (z b auf github) git add git commit m "initial commit" git remote add origin \<your remote repo url> git push u origin master 6 deployen sie ihre anwendung auf back4app containern nachdem sie ihr back4app konto erstellt haben, können sie die in den docs aufgeführten schritte befolgen 1 verbinden sie ihr github repo mit back4app https //www back4app com/docs containers/integrate with github 2 bereiten sie ihr projekt für die bereitstellung vor https //www back4app com/docs containers/prepare your deployment zusammenfassend werden container den anweisungen folgen, die in ihrer dockerfile detailliert beschrieben sind, und beginnen, ihre app zu erstellen 7 überwachen sie die bereitstellung und beheben sie mögliche fehler behalten sie die bereitstellungsprotokolle und den status im back4app containers dashboard im auge beheben sie alle fehler oder probleme, die während der bereitstellung auftreten bei komplexeren projekten stellen sie sicher, dass alle erforderlichen dienste (wie datenbanken oder externe apis) korrekt konfiguriert und zugänglich sind 8 fehlerbehebung bei häufigen problemen häufige bereitstellungsfehler beim ausführen einer next js app auf back4app containers sind hier https //www back4app com/docs containers/troubleshooting weitere mögliche häufige fehler bei der bereitstellung einer next js anwendung sind falsche portkonfiguration next js anwendungen sollten so konfiguriert werden, dass sie beim bereitstellen auf back4app containers auf einem bestimmten port ausgeführt werden wenn die anwendung weiterhin nicht zugänglich ist, überprüfen sie die dockerfile, um sicherzustellen, dass der richtige port freigegeben ist (z b expose 3000 für port 3000) inkompatible oder fehlende abhängigkeiten stellen sie sicher, dass alle erforderlichen abhängigkeiten in der package json datei aufgeführt sind und dass ihre versionen miteinander und mit ihrem anwendungscode kompatibel sind fehlende oder inkompatible abhängigkeiten können zu laufzeitfehlern führen ungültige umgebungsvariablen oder konfiguration überprüfen sie, ob ihre anwendung auf spezifische umgebungsvariablen oder konfigurationsdateien angewiesen ist, und stellen sie sicher, dass diese im back4app containers umfeld korrekt eingerichtet sind setzen sie alle erforderlichen umgebungsvariablen in ihrer dockerfile mit dem befehl env anwendungsabstürze oder unbehandelte ausnahmen unbehandelte ausnahmen oder abstürze in ihrem next js anwendungscode können zu bereitstellungsfehlern oder unerwartetem verhalten führen überprüfen sie ihre anwendungsprotokolle auf fehlermeldungen und beheben sie alle probleme in ihrem code überprüfen sie die containerprotokolle, indem sie docker logs your app name ausführen, um zu sehen, ob fehler oder ausnahmen auftreten verwenden sie ein tool wie sentry, um fehler in ihrer anwendung zu verfolgen und zu überwachen server seitige rendering konfiguration wenn ihre next js anwendung server seitiges rendering (ssr) verwendet, stellen sie sicher, dass ihre ssr konfiguration in ihrer dockerfile korrekt eingerichtet ist und dass sie ihre anwendung mit dem richtigen einstiegspunkt startet 9 skalieren sie ihre anwendung für komplexere projekte, die zusätzliche ressourcen oder horizontale/vertikale skalierung erfordern, sollten sie in betracht ziehen, ihren back4app containers plan zu aktualisieren, um erhöhten verkehr und last zu bewältigen 10 beispielanwendung für ein beispielprojekt einer next js anwendung können sie gehen zu https //github com/templates back4app/containers nextjs sample