fix(beat): use /tmp/celerybeat-schedule (workdir /app not writable by app user)
Beat был в restart-loop после force-recreate в PR #225 deploy: beat raised exception <class '_gdbm.error'>: error(13, 'Permission denied') shelve.py / dbm/__init__.py — попытка создать 'celerybeat-schedule' в CWD. Root cause - backend/Dockerfile runner stage: WORKDIR /app создаётся под root → owner root:root. - COPY --chown=app:app переносит файлы под app, но саму директорию /app не chown'ит. - USER app → app (uid 1000) не может создавать новые файлы в /app/ (нет write permission на parent dir). - До PR #225 beat container не пересоздавался force-recreate, файл schedule существовал в writable forme из inherited state. Force-recreate сбросил. Fix - --schedule=/tmp/celerybeat-schedule — /tmp всегда writable. - Schedule-файл хранит только last_run_at для periodic tasks; потеря на container restart OK, beat перестраивает из celery_app.conf.beat_schedule. Permanent fix (отдельный PR — runner Dockerfile) - Добавить `chown app:app /app` в runner stage после WORKDIR. Не делаю в этом PR — хотфикс минимальный, runner стейдж шарится с FastAPI image и worker, риск регрессии больше чем у однострочного --schedule override.
This commit is contained in:
parent
b5379fb135
commit
718a70f6e9
1 changed files with 6 additions and 1 deletions
|
|
@ -119,7 +119,12 @@ services:
|
||||||
depends_on:
|
depends_on:
|
||||||
redis:
|
redis:
|
||||||
condition: service_healthy
|
condition: service_healthy
|
||||||
command: ["celery", "-A", "app.workers.celery_app", "beat", "--loglevel=info"]
|
# --schedule=/tmp/...: default location `/app/celerybeat-schedule` падает
|
||||||
|
# с Permission denied — WORKDIR `/app` принадлежит root, `app` (uid 1000)
|
||||||
|
# не может создавать там файлы. `/tmp` всегда writable; schedule-файл
|
||||||
|
# хранит только last_run_at для periodic tasks — потеря на restart OK,
|
||||||
|
# beat перестроит из `celery_app.conf.beat_schedule` на старте.
|
||||||
|
command: ["celery", "-A", "app.workers.celery_app", "beat", "--loglevel=info", "--schedule=/tmp/celerybeat-schedule"]
|
||||||
|
|
||||||
glitchtip-web:
|
glitchtip-web:
|
||||||
image: glitchtip/glitchtip:6.1.6
|
image: glitchtip/glitchtip:6.1.6
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue