Ajout de la configuration Docker

This commit is contained in:
2026-01-11 14:58:11 +04:00
parent 48a60480b8
commit 992c88ab49
3 changed files with 66 additions and 0 deletions

25
.dockerignore Normal file
View File

@@ -0,0 +1,25 @@
# Docker-specific
Dockerfile
docker-compose.yml
# build output
dist/
# dependencies
node_modules/
# logs
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
# environment variables
.env
.env.production
# macOS-specific files
.DS_Store
# jetbrains setting folder
.idea/

30
Dockerfile Normal file
View File

@@ -0,0 +1,30 @@
# ---- Étape 1 : Build ----
# On utilise une image Node.js (version Alpine pour sa légèreté) pour construire le projet.
# L'alias "builder" nous permettra de réutiliser son contenu plus tard.
FROM node:20-alpine AS builder
# On définit le répertoire de travail dans le conteneur.
WORKDIR /app
# On copie les fichiers de dépendances.
COPY package*.json ./
# On installe les dépendances du projet.
RUN npm install
# On copie tout le reste du code source.
COPY . .
# On lance la commande de build d'Astro.
RUN npm run build
# ---- Étape 2 : Serve ----
# On part d'une image Nginx très légère pour servir nos fichiers statiques.
FROM nginx:stable-alpine
# On copie uniquement le résultat du build (le dossier /app/dist) de l'étape "builder"
# dans le dossier par défaut de Nginx qui sert les pages web.
COPY --from=builder /app/dist /usr/share/nginx/html
# On expose le port 80 pour pouvoir accéder au serveur Nginx depuis l'extérieur du conteneur.
EXPOSE 80

11
docker-compose.yml Normal file
View File

@@ -0,0 +1,11 @@
services:
# Le nom de notre service, vous pouvez l'appeler comme vous voulez.
sweet-astro-site:
# Indique à Docker Compose de construire l'image à partir du Dockerfile
# présent dans le répertoire courant ('.').
build: .
# Mappe le port 8080 de la machine hôte (votre Pi) au port 80 du conteneur (Nginx).
ports:
- "80:80"
# Redémarre automatiquement le conteneur s'il s'arrête (ex: après un redémarrage du Pi).
restart: unless-stopped