gpt4 book ai didi

django - 使用docker时无法从Django访问安装目录

转载 作者:行者123 更新时间:2023-12-02 19:14:45 24 4
gpt4 key购买 nike

我在docker中运行Django,我想从主机读取文件。我在docker-compose文件中使用以下命令将主机中的路径安装到容器:

volumes:     
- /path/on/host/sharedV:/var/www/project/src/shV
然后我执行mongodump并将集合导出到主机上的sharedV中。之后,我检查了Web容器并转到容器中的 shV 目录,可以看到备份文件。但是,当我在Django中运行 os.listdir(path)时,结果为空列表。换句话说,我可以访问Django中的 sharedV 目录,但看不到它的内容!
这是容器检查的安装部分:
"Mounts": [           
{
"Type": "bind",
"Source": "/path/on/host/sharedV",
"Destination": "/var/www/project/src/shV",
"Mode": "rw",
"RW": true,
"Propagation": "rprivate"
}
]
有什么想法可以从正在运行的容器访问主机吗?
谢谢

最佳答案

这对我有用,试图给你一种感觉
项目树

.
├── app
│   ├── dir
│   ├── file.txt
│   └── main.py
├── dir
│   └── demo.txt
├── docker-compose.yml
└── Dockerfile
Docker文件
# Dockerfile
FROM python:3.7-buster
RUN mkdir -p /app
WORKDIR /app

RUN useradd appuser && chown -R appuser /app
USER appuser

CMD [ "python", "./main.py" ]
docker 组成
version: '2'

services:
api:
build:
context: .
dockerfile: Dockerfile
restart: unless-stopped
volumes:
- ./app:/app/
- ./dir:/app/dir
main.py
if __name__ == '__main__':
path = './dir'
dir = os.listdir(path)
print(f'Hello', dir)
版画
Hello ['demo.txt']

关于django - 使用docker时无法从Django访问安装目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64078941/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com