Как добавить django-crontab в контейнер docker с пользовательским проектом django

Проблема ?

Я использую django-crontab. Я не могу запустить его как авторизованный пользователь на Docker alpine. Я получаю следующую ошибку

no crontab for app
  adding cronjob: (6e4989c275eb1a7f1e4c58d3442c53fe) -> ('*/1 * * * *', 'core.cron.hello')
initgroups failed: app Operation not permitted
unable to read replacement file /tmp/tmp1ehdmy4i%   

Файл докера

FROM python:3.9-alpine3.13
LABEL maintainer="mrfk"

ENV PYTHONUNBUFFERED 1

COPY ./requirements.txt /requirements.txt
COPY ./app /app
COPY ./scripts /scripts

WORKDIR /app
EXPOSE 8000

RUN python -m venv /py && \
    /py/bin/pip install --upgrade pip && \
    apk add --update --no-cache postgresql-client && \
    apk add --update --no-cache --virtual .tmp-deps \
        build-base postgresql-dev musl-dev linux-headers && \
    /py/bin/pip install -r /requirements.txt && \
    apk del .tmp-deps && \
    apk add --update busybox-suid && \
    apk --no-cache add dcron libcap && \
    adduser --disabled-password --no-create-home app && \
    mkdir -p /vol/web/static && \
    mkdir -p /vol/web/media && \
    chown -R app:app /vol && \
    chmod -R 755 /vol && \
    chmod -R +x /scripts && \
    chmod 755 /usr/bin/crontab*


ENV PATH="/scripts:/py/bin:$PATH"

USER app

CMD ["run.sh"]

Файл Run.SH

#!/bin/sh

set -e

ls -la /vol/
ls -la /vol/web

whoami
service cron start 
python manage.py wait_for_db
python manage.py collectstatic --noinput
python manage.py migrate

uwsgi --socket :9000 --workers 4 --master --enable-threads --module app.wsgi

Я пытаюсь создать простой cronjob в проекте django, но не могу решить проблему на стороне пользователя.

Вернуться на верх