From 09a3f6a1067d1ff9490c9c89cd31ffe36ef6b0ca Mon Sep 17 00:00:00 2001 From: Julien Froidefond Date: Fri, 12 Dec 2025 08:13:40 +0100 Subject: [PATCH] Update Docker configuration to persist uploaded images: Modify docker-compose.yml to include a volume for uploaded images, enhance Dockerfile to create the uploads directory, and update README to document the new uploads path configuration. --- Dockerfile | 5 +++-- README.docker.md | 24 +++++++++++++++++++----- docker-compose.yml | 2 ++ 3 files changed, 24 insertions(+), 7 deletions(-) diff --git a/Dockerfile b/Dockerfile index 6020f14..93e203e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -51,12 +51,13 @@ ENV DATABASE_URL="file:/app/data/dev.db" RUN pnpm add prisma @prisma/client @prisma/adapter-better-sqlite3 better-sqlite3 --prod && \ pnpm dlx prisma generate -# Create data directory for SQLite database -RUN mkdir -p /app/data && chown -R nextjs:nodejs /app/data +# Create data directory for SQLite database and uploads directory +RUN mkdir -p /app/data /app/public/uploads && chown -R nextjs:nodejs /app/data /app/public/uploads RUN echo '#!/bin/sh' > /app/entrypoint.sh && \ echo 'set -e' >> /app/entrypoint.sh && \ echo 'mkdir -p /app/data' >> /app/entrypoint.sh && \ + echo 'mkdir -p /app/public/uploads' >> /app/entrypoint.sh && \ echo 'pnpm dlx prisma migrate deploy || true' >> /app/entrypoint.sh && \ echo 'exec node server.js' >> /app/entrypoint.sh && \ chmod +x /app/entrypoint.sh && \ diff --git a/README.docker.md b/README.docker.md index 282ebf5..403259b 100644 --- a/README.docker.md +++ b/README.docker.md @@ -32,14 +32,28 @@ NEXTAUTH_URL=http://localhost:3000 DATABASE_URL=file:./prisma/dev.db ``` -## Base de données +## Volumes persistants -La base de données SQLite est persistée via un volume Docker. Les migrations Prisma sont appliquées automatiquement au démarrage du conteneur. +### Base de données + +La base de données SQLite est persistée via un volume Docker. Par défaut, elle est stockée dans `/Volumes/EXTERNAL_USB/sites/got-gaming/data`, mais vous pouvez la personnaliser avec la variable d'environnement `PRISMA_DATA_PATH`. + +Les migrations Prisma sont appliquées automatiquement au démarrage du conteneur. Pour appliquer manuellement les migrations : ```bash -docker-compose exec app node node_modules/.bin/prisma migrate deploy +docker-compose exec got-app node node_modules/.bin/prisma migrate deploy +``` + +### Images uploadées + +Les images uploadées (avatars, images d'événements, etc.) sont persistées dans un volume Docker. Par défaut, elles sont stockées dans `./uploads` à la racine du projet, mais vous pouvez personnaliser le chemin avec la variable d'environnement `UPLOADS_PATH`. + +Exemple pour utiliser un chemin personnalisé : + +```bash +UPLOADS_PATH=/path/to/your/uploads docker-compose up -d ``` ## Commandes utiles @@ -52,8 +66,8 @@ docker-compose down docker-compose build --no-cache # Accéder au shell du conteneur -docker-compose exec app sh +docker-compose exec got-app sh # Voir les logs en temps réel -docker-compose logs -f app +docker-compose logs -f got-app ``` diff --git a/docker-compose.yml b/docker-compose.yml index c58fcfe..629b0f6 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -16,6 +16,8 @@ services: volumes: # Persist database (override DATA_PATH env var to change location) - ${PRISMA_DATA_PATH:-/Volumes/EXTERNAL_USB/sites/got-gaming/data}:/app/data + # Persist uploaded images + - ${UPLOADS_PATH:-./uploads}:/app/public/uploads - ./prisma/migrations:/app/prisma/migrations restart: unless-stopped labels: