Я пытаюсь скачать PDF и сохранить его в моем приложении, которое докеризуется. Кажется, проблема в том, что мне не разрешено писать файлы внутри контейнера. Вот шаги, которые я предпринял:
Сначала я создал именованный том 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"
],
...