Sprachen- und Framework-Handbü...
Elixir Phoenix Apps mit Docker auf Back4App bereitstellen
13 min
back4app containers ist eine leistungsstarke plattform zum hosten von elixir phoenix anwendungen mit der fähigkeit, dockerisierte 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 elixir phoenix 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 anmerkungen 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 elixir phoenix auf back4app containern überprüfen möchten, gehen sie zu https //github com/templates back4app/containers python flask sample 1\ bereiten sie ihre elixir phoenix anwendung vor um ihre elixir phoenix anwendung für die bereitstellung auf back4app containers vorzubereiten, müssen sie die folgenden schritte ausführen stellen sie sicher, dass ihre anwendung mit den neuesten versionen von elixir und phoenix erstellt wurde sie können ihre elixir und phoenix versionen aktualisieren, indem sie ihre mix exs datei mit den neuesten abhängigkeitsversionen aktualisieren entfernen sie alle fest codierten konfigurationen, wie z b datenbank urls oder geheime schlüssel verwenden sie stattdessen umgebungsvariablen, um diese werte zu speichern, die sie dann innerhalb von back4app containern festlegen können dies stellt sicher, dass ihre anwendung sicherer und einfacher zu konfigurieren ist, wenn sie in verschiedenen umgebungen bereitgestellt wird stellen sie sicher, dass ihre anwendung die richtigen umgebungsparameter verwendet, wie z b produktions , entwicklungs oder testumgebungen aktualisieren sie ihre config/ exs dateien, um umgebungsvariablen für diese einstellungen zu verwenden kompilieren sie ihre anwendung mit dem befehl mix env=prod mix compile dies generiert die notwendigen build artefakte für die bereitstellung erstellen sie eine dockerignore datei im stammverzeichnis ihrer anwendung, um unnötige dateien und verzeichnisse aus dem docker build kontext auszuschließen dies hilft, die größe ihres docker images zu reduzieren und die build zeiten zu verbessern stellen sie sicher, dass ihre anwendung lokal korrekt läuft, indem sie sie mit mix env=prod mix phx server wenn alles korrekt funktioniert, sind sie bereit, zum nächsten schritt überzugehen dockerisierung 2\ dockerisierung um eine dockerfile für ihre elixir phoenix anwendung zu erstellen, befolgen sie diese schritte erstellen sie eine neue datei mit dem namen dockerfile im stammverzeichnis ihrer anwendung fügen sie den folgenden inhalt zu ihrem dockerfile \# use an official elixir runtime as a parent image from elixir 1 12 3 alpine \# set the working directory in the container to /app workdir /app \# copy the current directory contents into the container at /app copy /app \# install hex package manager run mix local hex force \# install rebar (erlang build tool) run mix local rebar force \# set environment variables env mix env=prod env secret key base=yoursecretkeyhere env port=4000 \# install dependencies run mix deps get \# compile the project run mix do compile \# digest the static assets run mix phx digest \# make port 4000 available to the world outside this container expose 4000 \# run the application cmd \["mix", "phx server"]# use the official elixir image as the base from elixir\ latest \# set the working directory workdir /app \# copy the application files copy \# install hex and rebar run mix local hex force && \\ mix local rebar force \# install dependencies run mix deps get \# compile the application run mix env=prod mix compile \# expose the application port expose 4000 \# start the application cmd \["mix", "phx server"] dieses dockerfile richtet eine grundlegende elixir phoenix anwendung mit dem offiziellen elixir image ein es installiert die erforderlichen abhängigkeiten und kompiliert die anwendung, dann wird port 4000 freigegeben und die anwendung mit mix phx server gestartet 3\ testen sie ihr projekt lokal bevor sie ihr projekt auf github hochladen und es in back4app containern bereitstellen, sollten sie ihre dockerisierte anwendung lokal testen befolgen sie dazu diese schritte bauen sie ihr docker image mit dem folgenden befehl docker build t your image name führen sie ihren docker container mit dem folgenden befehl aus docker run p 4000 4000 env file env your image name greifen sie in ihrem webbrowser auf ihre anwendung zu unter http //localhost 4000 wenn alles korrekt funktioniert, sind sie bereit, zum nächsten schritt überzugehen ihr projekt auf github hochzuladen 4\ laden sie ihr projekt auf github hoch um ihre elixir phoenix anwendung in ein github repository hochzuladen, befolgen sie diese schritte wenn sie es noch nicht getan haben, erstellen sie ein neues github repository für ihr projekt initialisieren sie ein git repository im stammverzeichnis ihres projekts mit dem befehl git init fügen sie alle ihre projektdateien mit dem befehl git add zum git repository hinzu übernehmen sie ihre änderungen mit einer aussagekräftigen nachricht mit dem befehl git commit m "ihre commit nachricht" fügen sie das remote github repository zu ihrem lokalen git repository mit dem befehl hinzu git remote add origin https //github com/your username/your repository git übertragen sie ihre änderungen an das remote github repository mit dem befehl git push u origin master mit ihrem projekt jetzt auf github können sie fortfahren, ihre anwendung auf back4app containern bereitzustellen 5\ stellen sie ihre anwendung auf back4app containern bereit um ihre rails app auf back4app containern bereitzustellen, melden sie sich zunächst bei ihrem back4app konto an und verbinden sie ihr github repository mit der plattform sobald sie verbunden sind, navigieren sie zum abschnitt container und erstellen sie eine neue container app während dieses prozesses können sie den pfad zu ihrer dockerfile anpassen und auch alle erforderlichen umgebungsvariablen erstellen, die ihre anwendung benötigt sie können diese dokumentation für eine bessere anleitung befolgen https //www back4app com/docs containers/integrate with github 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 nachdem sie ihre container app konfiguriert haben, wird back4app automatisch das container image mit ihrer dockerfile erstellen und ihre rails app auf der plattform bereitstellen der bereitstellungsprozess kann einige minuten dauern, abhängig von der größe und komplexität ihrer anwendung sobald die bereitstellung abgeschlossen ist, stellt back4app container ihnen eine eindeutige url zur verfügung, über die sie auf ihre bereitgestellte app zugreifen können 6\ überwachen sie die bereitstellung und beheben sie mögliche fehler während ihre anwendung auf back4app containern bereitgestellt wird, können sie den fortschritt überwachen und nach fehlern oder warnungen suchen befolgen sie dazu diese schritte klicken sie in ihrem back4app containers dashboard auf den namen ihrer anwendung, um deren details anzuzeigen klicken sie auf die registerkarte "protokolle", um die echtzeitprotokolle des bereitstellungsprozesses anzuzeigen achten sie besonders auf fehlermeldungen oder warnungen, die erscheinen könnten, da sie auf potenzielle probleme mit ihrer anwendung oder deren konfiguration hinweisen könnten falls erforderlich, nehmen sie die erforderlichen änderungen an ihrer anwendung oder deren konfiguration vor und stellen sie ihre anwendung erneut bereit 7\ fehlersuche bei häufigen problemen hier ist eine liste von häufigen problemen, die sie beim bereitstellen und ausführen einer elixir phoenix anwendung auf back4app containern antreffen könnten, zusammen mit einigen vorgeschlagenen lösungen docker bau schlägt fehl wenn ihr docker bau fehlschlägt, überprüfen sie sorgfältig die fehlermeldungen in den protokollen häufige probleme sind fehlende abhängigkeiten, falsche dateipfade oder syntaxfehler in ihrer dockerfile stellen sie sicher, dass sie diese probleme beheben und versuchen sie, ihre anwendung neu zu erstellen anwendung startet nicht wenn ihre anwendung nach der bereitstellung nicht startet, überprüfen sie die protokolle auf fehlermeldungen diese könnten auf probleme mit der konfiguration ihrer anwendung hinweisen, wie fehlende umgebungsvariablen oder falsche einstellungen stellen sie sicher, dass ihre anwendung korrekt konfiguriert ist und setzen sie sie gegebenenfalls erneut in betrieb anwendung läuft, ist aber nicht zugänglich wenn ihre anwendung läuft, aber über die zugewiesene url nicht zugänglich ist, überprüfen sie die konfigurationsdateien ihrer anwendung config/ exs sorgfältig, um sicherzustellen, dass die richtigen port und host einstellungen verwendet werden stellen sie außerdem sicher, dass ihre dockerfile den richtigen port freigibt, indem sie die expose direktive einfügen leistungsprobleme der anwendung wenn ihre anwendung leistungsprobleme hat oder langsam läuft, sollten sie in betracht ziehen, den code oder die konfiguration ihrer anwendung zu optimieren dies kann das anpassen von datenbankeinstellungen, die reduzierung der anzahl gleichzeitiger verbindungen oder die implementierung von caching umfassen darüber hinaus können sie in betracht ziehen, ihre anwendung auf back4app containern zu skalieren, indem sie die anzahl der container erhöhen oder auf einen leistungsstärkeren containerplan upgraden anwendung stürzt ab oder hat intermittierende probleme wenn ihre anwendung abstürzt oder intermittierende probleme hat, überprüfen sie die protokolle, um muster oder fehlermeldungen zu identifizieren, die auf die ursache hinweisen könnten häufige probleme sind speicherlecks, nicht behandelte ausnahmen oder unsachgemäß geschlossene verbindungen sobald sie das problem identifiziert haben, aktualisieren sie den code oder die konfiguration ihrer anwendung nach bedarf und setzen sie sie erneut in betrieb 8\ skalieren sie ihre anwendung (50 wörter) wenn ihre phoenix anwendung mehr ressourcen benötigt, um optimal zu funktionieren, können sie ihre back4app container ganz einfach vertikal skalieren, indem sie einen leistungsstärkeren container mit höheren cpu und speicherkapazitäten erwerben dies ermöglicht es ihrer anwendung, erhöhten datenverkehr zu bewältigen und eine bessere benutzererfahrung zu bieten 9\ beispielanwendung für eine referenzimplementierung können sie auf eine vorlage für eine phoenix app zugreifen, die auf back4app containern unter folgendem link bereitgestellt wird https //github com/templates back4app/containers elixir phoenix indem sie dieser anleitung folgen, sollten sie nun ein besseres verständnis dafür haben, wie sie ihre elixir phoenix anwendungen auf back4app containern bereitstellen und verwalten können mit seinen leistungsstarken funktionen und der benutzerfreundlichen oberfläche ist back4app containers eine ausgezeichnete plattform zum hosten ihrer anwendungen, während die komplexität von devops den experten überlassen wird