Разрешение отклонено при загрузке файла Docker FastapiPython

Программы на Python
Anonymous
Разрешение отклонено при загрузке файла Docker Fastapi

Сообщение Anonymous »

Я сталкиваюсь с ошибкой при попытке загрузить файл в конечную точку FastAPI, на локальном хосте он работает нормально, но я получаю сообщение об ошибке при запуске его в контейнере.
Я получаю ошибку:
File "/app/main.py", line 26, in say_hello
with open(file_path, "wb") as f:
^^^^^^^^^^^^^^^^^^^^^
PermissionError: [Errno 13] Permission denied: 'uploads/h.png'

Моя конечная точка загрузки:
@app.post("/letter")
async def say_hello(file: UploadFile = File(...)):

file_path = f"uploads/{file.filename}"

with open(file_path, "wb") as f:
f.write(await file.read())
return process_image(file_path)

Мой файл Docker:
# syntax=docker/dockerfile:1

ARG PYTHON_VERSION=3.12.3
FROM python:${PYTHON_VERSION}-slim as base

ENV PYTHONDONTWRITEBYTECODE=1
ENV PYTHONUNBUFFERED=1

WORKDIR /app

ARG UID=10001
RUN adduser \
--disabled-password \
--gecos "" \
--home "/nonexistent" \
--shell "/sbin/nologin" \
--no-create-home \
--uid "${UID}" \
appuser

# Set the permissions for all files
RUN chown -R appuser:appgroup /app

RUN --mount=type=cache,target=/root/.cache/pip \
--mount=type=bind,source=requirements.txt,target=requirements.txt \
python -m pip install -r requirements.txt

# Switch to the non-privileged user to run the application.
USER appuser

COPY . .

EXPOSE 8000

CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]

Я пробовал установить разрешения для пользователя по умолчанию, добавив разрешение в Dockerfile, но ничего не изменилось:
# Set the permissions for all files
RUN chown -R appuser:appgroup /app


Подробнее здесь: https://stackoverflow.com/questions/785 ... er-fastapi

Вернуться в «Python»