Correction du problème de permissions au démarrage du container

- Retrait de la création du .gitkeep au runtime (déjà présent dans le repo)
- Ajout de gestion d'erreur try/catch pour la création des dossiers
- Les volumes Docker montés ne causeront plus d'erreurs de permissions
- Correction de l'erreur EACCES lors de l'écriture dans /app/public/uploads
This commit is contained in:
Claude committed 2025-11-11 11:19:43 +00:00
1 parent 6c61fea99e
commit 9e7a433110
1 file changed
+9 -10
+9 -10
View File
@@ -13,23 +13,22 @@ const { initDatabase } = require('./config/database');
const app = express();
const PORT = process.env.PORT || 2222;
// Créer les dossiers nécessaires
// Créer les dossiers nécessaires (silencieusement, ils peuvent déjà exister via les volumes Docker)
const dataDir = path.join(__dirname, 'data');
const uploadsDir = path.join(__dirname, 'public', 'uploads');
[dataDir, uploadsDir].forEach(dir => {
if (!fs.existsSync(dir)) {
fs.mkdirSync(dir, { recursive: true });
logger.info(`Dossier créé: ${dir}`);
try {
if (!fs.existsSync(dir)) {
fs.mkdirSync(dir, { recursive: true });
logger.info(`Dossier créé: ${dir}`);
}
} catch (error) {
// Ignorer les erreurs si les dossiers existent déjà ou sont montés via Docker
logger.debug(`Dossier déjà existant: ${dir}`);
}
});
// Créer un fichier .gitkeep dans uploads pour le tracking git
const gitkeepPath = path.join(uploadsDir, '.gitkeep');
if (!fs.existsSync(gitkeepPath)) {
fs.writeFileSync(gitkeepPath, '');
}
// Configuration de la sécurité avec Helmet
app.use(helmet({
contentSecurityPolicy: {