我有一个作为Docker容器运行的小项目,用于备份我的MongoDB数据。备份数据应保存在Docker主机中。因此,我在volume
文件中使用docker-compose
:
version: '3'
services:
mongo_backup:
container_name: mongo_backup
build: .
command: python3 app.py
volumes:
- ./backups:/backups
运行此代码时,将在主机的项目文件夹中创建一个名为backups
的文件夹。
if not os.path.exists('./backups/'):
os.mkdir('./backups/')
但是当我尝试在./backups/
文件夹中创建另一个文件夹时,什么也没有发生且没有错误。
if not os.path.exists('./backups/another-folder'):
os.mkdir('./backups/another-folder')
第二个文件夹在docker容器中创建,但主机内部未发生任何事情。
如果问题与写权限有关,我已经设置了整个项目文件夹的完全访问权限:
sudo chmod -R 777 address/to/project/
但这没有帮助。
我需要在第一个文件夹中创建其他文件夹,因此无法将它们全部添加为volume
。我知道我想念什么。我就是不知道!
这是我的Dockerfile
,以防万一:
FROM python:3.6
WORKDIR /app
COPY src/requirements.txt /app
RUN pip3 install -r /app/requirements.txt
COPY ./src /app
答案 0 :(得分:2)
您必须像这样映射卷:
- ./backups:/app/backups
因为您的工作目录为/app
这里./backups/another-folder
使用的是相对路径,但您位于/app
内部,因此完整路径将为/app/backups/another-folder