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 app = express();
const PORT = process.env.PORT || 2222; 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 dataDir = path.join(__dirname, 'data');
const uploadsDir = path.join(__dirname, 'public', 'uploads'); const uploadsDir = path.join(__dirname, 'public', 'uploads');
[dataDir, uploadsDir].forEach(dir => { [dataDir, uploadsDir].forEach(dir => {
if (!fs.existsSync(dir)) { try {
fs.mkdirSync(dir, { recursive: true }); if (!fs.existsSync(dir)) {
logger.info(`Dossier créé: ${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 // Configuration de la sécurité avec Helmet
app.use(helmet({ app.use(helmet({
contentSecurityPolicy: { contentSecurityPolicy: {