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

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

我首先创建了一个命名卷myvoldocker 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"                                                                                                                                                                                          
            ],...
wugongjing 回答:在容器中写入文件时,Docker权限被拒绝

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

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

本文链接:https://www.f2er.com/3166183.html

大家都在问