J'ai un petit projet en cours d' exécution en tant que conteneur de docker pour sauvegarder les données de mon MongoDB. les données de sauvegarde est supposé enregistrer dans la machine hôte docker. Donc , j'utilise volume
dans le docker-compose
fichier:
version: '3'
services:
mongo_backup:
container_name: mongo_backup
build: .
command: python3 app.py
volumes:
- ./backups:/backups
Quand je lance ce code, un dossier nommé backups
est créé dans le dossier du projet dans la machine hôte.
if not os.path.exists('./backups/'):
os.mkdir('./backups/')
Mais lorsque je tente de créer un autre dossier dans le ./backups/
dossier, rien ne se passe sans erreur.
if not os.path.exists('./backups/another-folder'):
os.mkdir('./backups/another-folder')
Le deuxième dossier est créé à l'intérieur du conteneur docker, mais rien ne se passe à l'intérieur de la machine hôte.
Je me suis fixé l'accès à l'intégralité du dossier de projet dans le cas où le problème est lié aux autorisations d'écriture:
sudo chmod -R 777 address/to/project/
Mais il n'a pas aidé.
Je dois créer différents dossiers dans le premier dossier, donc je ne peux pas les ajouter comme volume
s. Je sais que je manque quelque chose. Je ne sais pas quoi!
Ceci est mon Dockerfile
juste au cas où:
FROM python:3.6
WORKDIR /app
COPY src/requirements.txt /app
RUN pip3 install -r /app/requirements.txt
COPY ./src /app
vous devez mapper vos volumes comme ceci:
- ./backups:/app/backups
parce que votre répertoire de travail est /app
ici ./backups/another-folder
vous utilisez un chemin relatif , mais vous êtes à l' intérieur de /app
sorte que votre chemin complet sera/app/backups/another-folder