Comment corriger MongoDB Docker Can't initialize rotatable log file :: caused by :: Failed to open /var/log/mongodb/mongod.log
Problème
Lors du démarrage de votre conteneur Docker MongoDB, vous voyez l’erreur suivante :
{"t":{"$date":"2025-05-26T16:58:22.276Z"},"s":"F", "c":"CONTROL", "id":20574, "ctx":"main","msg":"Error during global initialization","attr":{"error":{"code":38,"codeName":"FileNotOpen","errmsg":"Can't initialize rotatable log file :: caused by :: Failed to open /var/log/mongodb/mongod.log"}}}Solution
Vous avez mappé le répertoire de journaux MongoDB vers un répertoire hôte, mais l’utilisateur à l’intérieur du conteneur n’a pas la permission d’écrire dans ce répertoire.
Exemple de mappage dans votre docker-compose.yml :
services:
mongodb:
image: mongo
container_name: mongodb
ports:
- "27017:27017"
volumes:
- ./mongodb_data:/data/db
- ./mongodb_log:/var/log/mongodbVous devez corriger les permissions du répertoire hôte ./mongodb_log pour que l’utilisateur à l’intérieur du conteneur puisse y écrire.
Vous pouvez le faire en exécutant la commande suivante sur votre système hôte :
sudo chown -R 999:999 ./mongodb_log ./mongodb_dataDéfinir les permissions pour le répertoire de données n’est pas requis pour corriger ce message d’erreur spécifique, mais si vous rencontrez l’erreur pour le journal, vous pourriez tout aussi bien corriger les permissions du répertoire de données en même temps.