gpt4 book ai didi

docker - 在容器中写入文件时,Docker权限被拒绝

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

我正在尝试下载PDF并将其保存在经过docker化的应用程序中。问题似乎是不允许我在容器内写入文件。这是我采取的步骤:

我首先创建了一个名为myvol的卷:docker volume create myvol。然后,我更新了docker-compose.yml文件,如下所示:

version: "3"
services:
webpp:
container_name: webapp
image: webapp:latest
build: .
ports:
- "8000:8000"
volumes:
- myvol:/app

volumes:
myvol:

作为引用,我的 Dockerfile:
FROM python:3.7

WORKDIR /app
ADD ./requirements.txt .
RUN pip install -r requirements.txt
ADD . .
RUN groupadd -g 999 appuser && \
useradd -r -d /app -u 999 -g appuser appuser
RUN chown -R appuser:appuser /app

USER appuser
RUN mkdir webapp/_tmp; chmod a+rwx webapp/_tmp/

EXPOSE 8000
ENTRYPOINT ["python", "main.py"]

当我运行代码时,我被拒绝了权限。如果我将 exec放入容器中并尝试写一些东西,或者例如 wget http://duck.com也给我一个“权限被拒绝”错误,也会发生同样的情况。

我不确定是什么问题,因为即使 docker inspect似乎也是正确的...
        "Mounts": [                                                                                                                                                                                                
{
"Type": "volume",
"Name": "myvol",
"Source": "/var/lib/docker/volumes/myvol/_data",
"Destination": "/app",
"Driver": "local",
"Mode": "rw",
"RW": true,
"Propagation": ""
}
],
...
"Volumes": {
"/app": {}
},
"WorkingDir": "/app",
"Entrypoint": [
"python",
"main.py"
],
...

最佳答案

撰写volumes中的- myvol:/app部分将覆盖该权限及其在/app文件夹中包含的所有内容,您可以将其从撰写中删除。

如果要使用卷保留数据,请创建另一个挂载为/ app并在python代码中指向它

关于docker - 在容器中写入文件时,Docker权限被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58694995/

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