From 12adf2996b7827df1babac48f1a9cf3981c3484b Mon Sep 17 00:00:00 2001 From: Azmog <80716388+AzmogEx@users.noreply.github.com> Date: Tue, 16 Jun 2026 11:06:52 +0200 Subject: [PATCH] Ajout des fichiers Dockerfile et nginx.conf pour la configuration du site avec Zola et Nginx --- site/.dockerignore | 5 +++++ site/Dockerfile | 26 ++++++++++++++++++++++++++ site/nginx.conf | 19 +++++++++++++++++++ 3 files changed, 50 insertions(+) create mode 100644 site/.dockerignore create mode 100644 site/Dockerfile create mode 100644 site/nginx.conf diff --git a/site/.dockerignore b/site/.dockerignore new file mode 100644 index 0000000..c054c95 --- /dev/null +++ b/site/.dockerignore @@ -0,0 +1,5 @@ +.git +.gitignore +public +Dockerfile +.dockerignore diff --git a/site/Dockerfile b/site/Dockerfile new file mode 100644 index 0000000..549f6ca --- /dev/null +++ b/site/Dockerfile @@ -0,0 +1,26 @@ +# ---- Étape 1 : build du site avec Zola ---- +FROM ghcr.io/getzola/zola:v0.19.2 AS builder + +WORKDIR /app +COPY . . + +# Construit le site statique dans /app/public +# --base-url permet à Coolify de surcharger l'URL via la variable BASE_URL +ARG BASE_URL=/ +RUN ["zola", "build", "--base-url", "/"] + +# ---- Étape 2 : service du site avec nginx ---- +FROM nginx:1.27-alpine + +# Config nginx (gestion des 404, cache des assets) +COPY nginx.conf /etc/nginx/conf.d/default.conf + +# Copie le site généré +COPY --from=builder /app/public /usr/share/nginx/html + +EXPOSE 80 + +HEALTHCHECK --interval=30s --timeout=3s --start-period=5s \ + CMD wget -q --spider http://localhost/ || exit 1 + +CMD ["nginx", "-g", "daemon off;"] diff --git a/site/nginx.conf b/site/nginx.conf new file mode 100644 index 0000000..f695f0b --- /dev/null +++ b/site/nginx.conf @@ -0,0 +1,19 @@ +server { + listen 80; + server_name _; + root /usr/share/nginx/html; + index index.html; + + # Page d'erreur générée par Zola + error_page 404 /404.html; + + location / { + try_files $uri $uri/ =404; + } + + # Cache long pour les assets statiques + location ~* \.(css|js|jpg|jpeg|png|gif|ico|svg|woff2?)$ { + expires 30d; + add_header Cache-Control "public, immutable"; + } +}