Maison > interface Web > js tutoriel > Comment Dockeriser SvelteKit

Comment Dockeriser SvelteKit

DDD
Libérer: 2025-01-19 12:29:09
original
220 Les gens l'ont consulté

Ce guide vous montre comment conteneuriser votre application SvelteKit pour un déploiement et une gestion simplifiés. N'oubliez pas : c'est pour SvelteKit, pas pour Svelte !

Configuration

S'il vous manque un projet SvelteKit, créez-en un :

<code class="language-bash">npx sv create my-svelte-app --template demo --types ts</code>
Copier après la connexion

Ensuite, configurez SvelteKit pour utiliser le adapter-node pour la compatibilité Node.js, essentiel pour la conteneurisation. Installez-le :

<code class="language-bash">npm i -D @sveltejs/adapter-node</code>
Copier après la connexion

Modifier svelte.config.js :

<code class="language-javascript">// svelte.config.js
- import adapter from '@sveltejs/adapter-auto';
+ import adapter from '@sveltejs/adapter-node';</code>
Copier après la connexion

Maintenant, créez votre Dockerfile. Ceci indique à Docker comment créer et exécuter votre application :

<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>
Copier après la connexion

Ce Dockerfile utilise une construction en plusieurs étapes. L'étape de création compile votre application et l'étape finale crée une image d'exécution plus simple.

Pour rationaliser le processus de construction, créez un .dockerignore fichier :

<code>Dockerfile
.dockerignore
.git
.gitignore
.gitattributes
README.md
.npmrc
.prettierrc
.eslintrc.cjs
.graphqlrc
.editorconfig
.svelte-kit
.vscode
node_modules
build
package
**/.env</code>
Copier après la connexion

Généralement, installez toutes les dépendances en tant que devDependencies (en utilisant npm i -D <package>). Cela permet à SvelteKit de les regrouper, supprimant ainsi les importations inutilisées. Cependant, si vous rencontrez des problèmes tels que __dirname non défini lors de la construction, installez le package en tant que dépendance standard. Si toutes les dépendances sont devDependencies, vous pouvez omettre de copier node_modules lors de l'étape finale de Docker, minimisant ainsi davantage la taille de l'image.

Créez votre image Docker :

<code class="language-bash">docker build -t my-sveltekit-app .</code>
Copier après la connexion

Exécutez l'application conteneurisée :

<code class="language-bash">docker run -p 3000:3000 my-sveltekit-app</code>
Copier après la connexion

Accédez à votre application sur http://localhost:3000.

How to Dockerize SvelteKit

Variables d'environnement

SvelteKit propose quatre façons de gérer les variables d'environnement : $env/dynamic/private, $env/dynamic/public, $env/static/private et $env/static/public. N'oubliez pas que différentes plates-formes de déploiement les gèrent différemment ; consulter leur documentation.

Pour les actions de formulaire et les fonctionnalités côté serveur, définissez correctement la variable d'environnement ORIGIN pour éviter les erreurs POST intersites :

<code class="language-bash">docker run -p 3000:3000 -e ORIGIN=http://localhost:3000 my-sveltekit-app</code>
Copier après la connexion

Remplacez http://localhost:3000 par votre domaine de production.

Optimisation de la production

  1. Vérifications de santé : Ajoutez un point de terminaison /health et utilisez l'instruction HEALTHCHECK de Docker :
<code class="language-dockerfile">HEALTHCHECK --interval=30s --timeout=3s \
  CMD wget --no-verbose --tries=1 --spider http://localhost:3000/health || exit 1</code>
Copier après la connexion
  1. Limites de mémoire : Définir les limites de mémoire Node.js :
<code class="language-bash">docker run -p 3000:3000 -e NODE_OPTIONS="--max-old-space-size=512" my-sveltekit-app</code>
Copier après la connexion
  1. Analyse de sécurité : Recherchez régulièrement les vulnérabilités :
<code class="language-bash">docker scout quickview</code>
Copier après la connexion

Conclusion

Vous avez maintenant conteneurisé votre application SvelteKit. Pour le déploiement, pensez à sliplane.io.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal