我正在尝试下载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"
],
...
答案 0 :(得分:0)
撰写volumes
中的- myvol:/app
部分将覆盖该权限及其在/app
文件夹中包含的所有内容,您可以从撰写中删除它。
如果您想使用卷来保存数据,请创建另一个挂载为/ app并在python代码中指向它