diff --git a/Dockerfile b/Dockerfile index a2a6fb2..958473d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -12,6 +12,9 @@ RUN pip install --no-cache-dir -r requirements.txt \ FROM base AS api COPY --chown=app:app src/backend ./src/backend +# Том с данными монтируется в /data: создаём каталог заранее и отдаём владельцу app, +# чтобы приложение могло писать (БД и загрузки) под своим пользователем. +RUN mkdir -p /data && chown app:app /data ENV LMS_DATA_DIR=/data USER app EXPOSE 8000 diff --git a/README.md b/README.md index 4e0302d..94af49b 100644 --- a/README.md +++ b/README.md @@ -83,6 +83,15 @@ docker compose logs -f # логи `lms-api` достаточно оставить внутри сети compose (в `.env` не публиковать `API_PORT`, либо ограничить доступ файрволом). +Если после обновления кода контейнер api падает с +`PermissionError: ... '/data/uploads'` (старый том создан от root) — сбросьте том +один раз и перезапустите (данных в нём ещё нет): + +```bash +sudo docker compose down -v +sudo ./deploy.sh +``` + ### Вариант 2 — без Docker (процессы через systemd) ```bash