
Déployer un site Astro en local avec Docker
Prérequis
- Node.js installé (
npm
fonctionnel) - Docker Desktop installé et lancé
- Un projet Astro existant
1. Créer un projet Astro
Dans un terminal (PowerShell ou WSL) :
npm create astro@latest
`
Répondre aux questions :
- Choisir un template (
minimal
,blog
, etc.) - Installer les dépendances
- Initialiser Git (optionnel)
2. Corriger un nom de dossier incorrect (si nécessaire)
Si le projet a été créé dans un dossier étrange (comme ./npm -v
), le renommer :
mv "OneDrive/Documents/projet/npm -v" OneDrive/Documents/projet/astro-blog
cd OneDrive/Documents/projet/astro-blog
3. Ajouter un Dockerfile
Créer un fichier Dockerfile
dans le dossier du projet et y coller :
# Build stage
FROM node:20-alpine AS builder
WORKDIR /app
COPY . .
RUN npm install
RUN npm run build
# Serve stage
FROM node:20-alpine
WORKDIR /app
COPY --from=builder /app /app
RUN npm install -g serve
CMD ["serve", "dist", "-l", "3000"]
4. Ajouter un docker-compose.yml (optionnel)
Créer un fichier docker-compose.yml
:
version: '3.8'
services:
astro:
build: .
ports:
- "3000:3000"
restart: unless-stopped
5. Lancer l’application avec Docker
Dans le dossier du projet :
docker compose up --build
Puis ouvrir le site dans un navigateur :
http://localhost:3000
6. Arrêter le conteneur
Dans le terminal :
CTRL + C
docker compose down
7. Bonus
Tester si Docker est bien installé :
docker version
Tester un conteneur simple :
docker run hello-world
Prochaine étape
- Connecter le projet à un dépôt Git
- Le déployer sur un serveur avec EasyPanel