Heim > Web-Frontend > js-Tutorial > So dockerisieren Sie SvelteKit

So dockerisieren Sie SvelteKit

DDD
Freigeben: 2025-01-19 12:29:09
Original
220 Leute haben es durchsucht

Diese Anleitung zeigt Ihnen, wie Sie Ihre SvelteKit-Anwendung für eine vereinfachte Bereitstellung und Verwaltung in einen Container umwandeln. Denken Sie daran: Dies ist für SvelteKit, nicht für Svelte!

Einrichten

Wenn Ihnen ein SvelteKit-Projekt fehlt, erstellen Sie eines:

<code class="language-bash">npx sv create my-svelte-app --template demo --types ts</code>
Nach dem Login kopieren

Als nächstes konfigurieren Sie SvelteKit für die Verwendung von adapter-node für die Node.js-Kompatibilität, die für die Containerisierung unerlässlich ist. Installieren Sie es:

<code class="language-bash">npm i -D @sveltejs/adapter-node</code>
Nach dem Login kopieren

Ändern svelte.config.js:

<code class="language-javascript">// svelte.config.js
- import adapter from '@sveltejs/adapter-auto';
+ import adapter from '@sveltejs/adapter-node';</code>
Nach dem Login kopieren

Jetzt erstellen Sie Ihr Dockerfile. Dies weist Docker an, Ihre Anwendung zu erstellen und auszuführen:

<code class="language-dockerfile"># Builder stage
FROM node:22-alpine AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build
RUN npm prune --production

# Final stage
FROM node:22-alpine
WORKDIR /app
COPY --from=builder /app/build build/
COPY --from=builder /app/node_modules node_modules/
COPY package.json .
EXPOSE 3000
ENV NODE_ENV=production
CMD [ "node", "build" ]</code>
Nach dem Login kopieren

Dieser Dockerfile verwendet einen mehrstufigen Build. In der Builder-Phase wird Ihre App kompiliert und in der letzten Phase wird ein schlankeres Laufzeitbild erstellt.

Um den Build-Prozess zu optimieren, erstellen Sie eine .dockerignore Datei:

<code>Dockerfile
.dockerignore
.git
.gitignore
.gitattributes
README.md
.npmrc
.prettierrc
.eslintrc.cjs
.graphqlrc
.editorconfig
.svelte-kit
.vscode
node_modules
build
package
**/.env</code>
Nach dem Login kopieren

Im Allgemeinen installieren Sie alle Abhängigkeiten als devDependencies (mit npm i -D <package>). Dadurch kann SvelteKit sie bündeln und ungenutzte Importe entfernen. Wenn Sie jedoch während des Builds auf Probleme wie „__dirname undefiniert“ stoßen, installieren Sie das Paket als reguläre Abhängigkeit. Wenn alle Abhängigkeiten devDependencies sind, können Sie das Kopieren node_modules in der letzten Docker-Phase weglassen, um die Bildgröße weiter zu minimieren.

Erstellen Sie Ihr Docker-Image:

<code class="language-bash">docker build -t my-sveltekit-app .</code>
Nach dem Login kopieren

Führen Sie die Container-App aus:

<code class="language-bash">docker run -p 3000:3000 my-sveltekit-app</code>
Nach dem Login kopieren

Zugriff auf Ihre App unter http://localhost:3000.

How to Dockerize SvelteKit

Umgebungsvariablen

SvelteKit bietet vier Möglichkeiten zum Verwalten von Umgebungsvariablen: $env/dynamic/private, $env/dynamic/public, $env/static/private und $env/static/public. Denken Sie daran, dass verschiedene Bereitstellungsplattformen damit unterschiedlich umgehen. Konsultieren Sie deren Dokumentation.

Für Formularaktionen und serverseitige Funktionen legen Sie die Umgebungsvariable ORIGIN richtig fest, um siteübergreifende POST-Fehler zu verhindern:

<code class="language-bash">docker run -p 3000:3000 -e ORIGIN=http://localhost:3000 my-sveltekit-app</code>
Nach dem Login kopieren

Ersetzen Sie http://localhost:3000 durch Ihre Produktionsdomäne.

Produktionsoptimierung

  1. Gesundheitsprüfungen: Fügen Sie einen /health Endpunkt hinzu und verwenden Sie die HEALTHCHECK-Anweisung von Docker:
<code class="language-dockerfile">HEALTHCHECK --interval=30s --timeout=3s \
  CMD wget --no-verbose --tries=1 --spider http://localhost:3000/health || exit 1</code>
Nach dem Login kopieren
  1. Speichergrenzen: Node.js-Speichergrenzen festlegen:
<code class="language-bash">docker run -p 3000:3000 -e NODE_OPTIONS="--max-old-space-size=512" my-sveltekit-app</code>
Nach dem Login kopieren
  1. Sicherheitsscan: Regelmäßig nach Schwachstellen scannen:
<code class="language-bash">docker scout quickview</code>
Nach dem Login kopieren

Fazit

Sie haben Ihre SvelteKit-Anwendung jetzt in einem Container zusammengefasst. Ziehen Sie für die Bereitstellung Sliplane.io in Betracht.

Das obige ist der detaillierte Inhalt vonSo dockerisieren Sie SvelteKit. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage